680_Valid Palindrome II
Given a non-empty strings
, you may delete at most one character. Judge whether you can make it a palindrome.
Example 1:
Input:
"aba"
Output:
True
Example 2:
Input:
"abca"
Output:
True
Explanation:
You could delete the character 'c'.
Note:
The string will only contain lowercase characters a-z. The maximum length of the string is 50000.
Solution
class Solution(object):
def validPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
left, right = 0, len(s) - 1
while left < right:
if s[left] == s[right]:
left += 1
right -= 1
else:
temp1 = s[left : right] # if delete right element
temp2 = s[left+1 : right + 1] # if delete left element
return temp1 == temp1[::-1] or temp2 == temp2[::-1]
return True
Last updated
Was this helpful?