680. Valid Palindrome II
Given a non-empty strings, you may deleteat mostone 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. 
Thoughts:
- Try to compare the head and tail char, if not equal then try compare (head + 1, tail) and (head, tail- 1). 
class Solution(object):
    def validPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        def isPalindrome(s, start, end):
            while start < end:
                if s[start] != s[end]: return False
                start += 1
                end -= 1
            return True
        start, end = 0, len(s) - 1
        while start < end:
            if s[start] != s[end]: return isPalindrome(s, start + 1, end) or isPalindrome(s, start, end -1)
            start+=1
            end-=1
        return TrueLast updated
Was this helpful?