Hint: Longest palindrome means longest continuous mirrored substring [OK]
Common Mistakes:
Confusing substring with subsequence
Counting all palindromes instead of longest
Checking whole string palindrome only
2. Which of the following Python code snippets correctly initializes variables to find the longest palindromic substring?
easy
A. start, max_len = 0, 1
B. start = max_len = None
C. start, max_len = 1, 0
D. start = max_len = 0
Solution
Step 1: Understand variable roles
We need to track the start index and maximum length of the palindrome found. Starting with 0 and 1 is common because a single character is a palindrome.
Step 2: Check initialization correctness
start, max_len = 0, 1 sets start=0 and max_len=1, which is correct. start, max_len = 1, 0 reverses values incorrectly. Options A, B, and C do not set max_len properly.
Final Answer:
start, max_len = 0, 1 -> Option A
Quick Check:
Initialize start=0 and max_len=1 for single char palindrome [OK]
Hint: Start at 0, max length at least 1 for single char palindrome [OK]
Common Mistakes:
Setting max_len to 0 initially
Using None instead of integers
Swapping start and max_len values
3. What will be the output of the following code snippet?
def expand_around_center(s, left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return right - left - 1
s = "babad"
length = expand_around_center(s, 1, 1)
print(length)
medium
A. 1
B. 5
C. 3
D. 0
Solution
Step 1: Understand the function behavior
The function expands around the center indices (left and right) while characters match, then returns the length of the palindrome found.
Step 2: Trace the expansion for s='babad' at center (1,1)
Center at index 1 ('a'). Expand left=1, right=1: 'a'=='a' true, expand to left=0, right=2: 'b'=='b' true, expand to left=-1 (stop). Length = right - left - 1 = 3 - (-1) - 1 = 3.
Final Answer:
3 -> Option C
Quick Check:
Expand around center returns palindrome length 3 [OK]
Hint: Expand while chars match, length = right - left - 1 [OK]
Common Mistakes:
Not subtracting 1 in length calculation
Confusing indices after expansion
Assuming length equals right - left
4. Identify the error in the following code snippet for finding the longest palindromic substring:
def longest_palindrome(s):
start, max_len = 0, 1
for i in range(len(s)):
len1 = expand_around_center(s, i, i)
len2 = expand_around_center(s, i, i+1)
length = max(len1, len2)
if length > max_len:
start = i - length // 2
max_len = length
return s[start:start+max_len]
medium
A. The loop should run till len(s)-1 to avoid index error
B. The start index calculation is incorrect for even length palindromes
C. max_len should be initialized to 0 instead of 1
D. expand_around_center function is missing
Solution
Step 1: Analyze start index update logic
For even length palindromes, start index calculation differs because center is between two characters. Using i - length // 2 works for odd length but not always for even length.
Step 2: Identify correct start calculation
For even length, start should be i - (length // 2) + 1 to correctly locate the palindrome start.
Final Answer:
The start index calculation is incorrect for even length palindromes -> Option B
Quick Check:
Start index must adjust differently for even palindromes [OK]
Hint: Adjust start index differently for even-length palindromes [OK]
Common Mistakes:
Using same start formula for odd and even palindromes
Ignoring even length palindrome cases
Not updating max_len properly
5. Given the string "forgeeksskeegfor", which substring is the longest palindromic substring?
hard
A. "geeksskeeg"
B. "forgeeksskeegfor"
C. "geeksskeegf"
D. "eksskeeg"
Solution
Step 1: Identify palindromic substrings in the string
Check substrings that read the same forwards and backwards. "geeksskeeg" is a palindrome of length 10 inside the string.
Step 2: Compare lengths of candidate substrings
"forgeeksskeegfor" is not a palindrome as a whole. "geeksskeegf" and "eksskeeg" are shorter palindromes.
Final Answer:
"geeksskeeg" -> Option A
Quick Check:
Longest palindrome in "forgeeksskeegfor" is "geeksskeeg" [OK]
Hint: Look for longest mirrored substring inside the string [OK]
Common Mistakes:
Assuming whole string is palindrome
Choosing substring with extra characters
Ignoring palindrome length
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.