Bird
Raised Fist0
DSA Cprogramming~10 mins

Longest Palindromic Substring in DSA C - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize the maximum length of palindrome found.

DSA C
int maxLength = [1];
Drag options to blanks, or click blank then click option'
A1
B-1
C0
DNULL
Attempts:
3 left
💡 Hint
Common Mistakes
Initializing maxLength to 0 which ignores single character palindromes.
Using NULL which is not an integer.
2fill in blank
medium

Complete the code to expand around the center and check palindrome boundaries.

DSA C
while (left >= 0 && right < n && s[left] == s[right]) {
    left--;
    right++;
}
int length = right - left - [1];
Drag options to blanks, or click blank then click option'
A1
B0
C2
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Not subtracting 1 causes length to be off by 1.
Subtracting 0 or 2 leads to incorrect palindrome length.
3fill in blank
hard

Fix the error in the code that updates the start index of the longest palindrome found.

DSA C
if (length > maxLength) {
    start = left + [1];
    maxLength = length;
}
Drag options to blanks, or click blank then click option'
A-1
B1
C0
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using left directly without adjustment.
Adding 0 or 2 which shifts start incorrectly.
4fill in blank
hard

Fill both blanks to correctly check for odd and even length palindromes around center i.

DSA C
int len1 = expandAroundCenter(s, [1], [2]);
int len2 = expandAroundCenter(s, i, i + 1);
Drag options to blanks, or click blank then click option'
Ai
Bi - 1
Ci + 1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using different indices for left and right in odd palindrome check.
Using i-1 or i+1 which is for even length palindrome.
5fill in blank
hard

Fill all three blanks to update start and maxLength after finding the longer palindrome length.

DSA C
int maxLen = (len1 > len2) ? len1 : len2;
if (maxLen > maxLength) {
    start = i - (maxLen - [1]) / [2];
    maxLength = maxLen;
    end = i + maxLen / [3];
}
Drag options to blanks, or click blank then click option'
A1
B2
C0
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Incorrect division causing wrong start or end indices.
Using 0 or 3 which do not represent half.

Practice

(1/5)
1. What is the main goal when finding the Longest Palindromic Substring in a given string?
easy
A. To find the longest substring with all unique characters
B. To find the longest substring that contains only vowels
C. To find the longest continuous sequence of characters that reads the same backward and forward
D. To find the longest substring that is sorted alphabetically

Solution

  1. Step 1: Understand palindrome definition

    A palindrome reads the same backward and forward, like 'madam' or 'racecar'.
  2. Step 2: Identify substring requirement

    The substring must be continuous characters in the string, not scattered.
  3. Final Answer:

    To find the longest continuous sequence of characters that reads the same backward and forward -> Option C
  4. Quick Check:

    Longest palindromic substring = continuous palindrome [OK]
Hint: Look for continuous same backward-forward sequences [OK]
Common Mistakes:
  • Confusing substring with subsequence
  • Looking for unique characters instead of palindrome
  • Ignoring continuity of characters
2. Which of the following C code snippets correctly initializes variables to find the longest palindromic substring length?
easy
A. int maxLength = 0; int start = -1; int len = strlen(s);
B. int maxLength = 1; int start = 0; int len = strlen(s);
C. int maxLength = 1; int start = 0; int len = length(s);
D. int maxLength = 1; int start = 0; int len = s.length;

Solution

  1. Step 1: Check correct function for string length in C

    In C, strlen() is used to get string length, not length() or s.length.
  2. Step 2: Verify variable initialization

    Longest palindrome length starts at 1 (single char), start index at 0, and length is string length.
  3. Final Answer:

    int maxLength = 1; int start = 0; int len = strlen(s); -> Option B
  4. Quick Check:

    Use strlen() for string length in C [OK]
Hint: Use strlen() to get string length in C [OK]
Common Mistakes:
  • Using length() instead of strlen() in C
  • Initializing maxLength to 0 instead of 1
  • Using Java or C++ string length syntax in C
3. What will be the output of the following C code snippet that finds the longest palindromic substring length?
char s[] = "babad";
int maxLength = 1, start = 0;
int len = strlen(s);
for (int i = 0; i < len; i++) {
    int low = i - 1;
    int high = i + 1;
    while (high < len && s[high] == s[i])
        high++;
    while (low >= 0 && s[low] == s[i])
        low--;
    while (low >= 0 && high < len && s[low] == s[high]) {
        low--;
        high++;
    }
    int length = high - low - 1;
    if (maxLength < length) {
        maxLength = length;
        start = low + 1;
    }
}
printf("%d", maxLength);
medium
A. 3
B. 2
C. 4
D. 5

Solution

  1. Step 1: Understand the palindrome expansion logic

    The code expands around each character to find palindromes, including duplicates and symmetric characters.
  2. Step 2: Trace the longest palindrome in "babad"

    Longest palindromic substrings are "bab" or "aba", both length 3.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Longest palindrome in "babad" = 3 [OK]
Hint: Check palindrome centers and expand outwards [OK]
Common Mistakes:
  • Assuming entire string is palindrome
  • Counting non-continuous characters
  • Ignoring multiple palindrome centers
4. Identify the bug in the following C code snippet intended to find the longest palindromic substring length:
char s[] = "cbbd";
int maxLength = 1, start = 0;
int len = strlen(s);
for (int i = 0; i < len; i++) {
    int low = i - 1;
    int high = i + 1;
    while (low >= 0 && high < len && s[low] == s[high]) {
        low--;
        high++;
    }
    int length = high - low - 1;
    if (maxLength < length) {
        maxLength = length;
        start = low + 1;
    }
}
printf("%d", maxLength);
medium
A. The code does not check for even length palindromes correctly
B. The variable 'start' is not updated properly
C. The initial maxLength should be 0, not 1
D. The loops use wrong comparison operators

Solution

  1. Step 1: Analyze palindrome detection logic

    The code expands around a single center character, missing even length palindromes like "bb" in "cbbd".
  2. Step 2: Identify missing even length palindrome check

    Even length palindromes require checking centers between characters, which is not done here.
  3. Final Answer:

    The code does not check for even length palindromes correctly -> Option A
  4. Quick Check:

    Missing even length palindrome check = bug [OK]
Hint: Check centers between characters for even palindromes [OK]
Common Mistakes:
  • Only checking odd length palindromes
  • Not updating start index correctly
  • Wrong initial maxLength value
5. Given the string "forgeeksskeegfor", which approach correctly finds the longest palindromic substring and what is its length? A) Brute force method, length 8 B) Dynamic programming method, length 12 C) Expand around center method, length 12 D) Expand around center method, length 10
hard
A. Brute force method, length 8
B. Dynamic programming method, length 12
C. Expand around center method, length 12
D. Expand around center method, length 10

Solution

  1. Step 1: Identify longest palindrome in "forgeeksskeegfor"

    The longest palindromic substring is "geeksskeeg", length 10.
  2. Step 2: Check method correctness and length

    Expand around center method can find the longest palindrome correctly. The longest palindrome is "geeksskeeg" (length 10).
  3. Step 3: Re-examine options

    Expand around center method, length 10 says expand around center method, length 10 which is correct. Other options have incorrect lengths or methods.
  4. Final Answer:

    Expand around center method, length 10 -> Option D
  5. Quick Check:

    Longest palindrome "geeksskeeg" length 10 [OK]
Hint: Longest palindrome is "geeksskeeg" length 10 [OK]
Common Mistakes:
  • Assuming full string is palindrome
  • Confusing length 12 with actual palindrome length
  • Mixing method with incorrect length
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard