Playing Hacks and Stuffs!
We are given a string s
and we are to return True
if s
is palindrome after deleting at most one character from it
Let’s take a sample:
s = aba
Remember that when a word is said to be palindrome means that when we read it either forward or backward it reads the same
Now in this case the condition if to remove at most one character from it, so that means before we check is it’s palindrome we need to remove any single character from the string
Let’s say I remove the first character a
the resulting string would be ba
Is ba
palindrome? Nope because it can’t be read forward & backward
Let’s remove the second string b
the resulting string would be aa
Is aa
palindrome? Yup because it can be read forward and backward
From the previous Palindrome
challenges I solved them using like linear search approach where I checked if the array[left != array[right]
Now I will implement it here too but now we need to make sure that we delete a character from the string
That can be achieved by incrementing the left
pointer by 1
while the right
pointer remains the same or decreasing the right
pointer by 1 and the left
pointer remains the same
Here’s my solve script
Solve Script: link
Complexity:
O(N)
O(1)