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:
 TrueExample 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 TrueLast updated
Was this helpful?