Given a non-empty string s, 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.
class Solution:
     def validPalindrome(self, s):
         """
         :type s: str
         :rtype: bool
         """
         if s == s[::-1]:
             return True
 
         i,j =  0, len(s)-1
         while i < j:
             if s[i] == s[j]:
                 i+=1
                 j-=1
             else:
                 remove_i = s[:i] + s[i+1:]
                 remove_j = s[:j] + s[j+1:]
 
                 return remove_i == remove_i[::-1] or remove_j == remove_j[::-1]
class Solution:
     def validPalindrome(self, s):
         """
         :type s: str
         :rtype: bool
         """
         if s == s[::-1]:
             return True
 
         i,j =  0, len(s)-1
         while i < j:
             if s[i] == s[j]:
                 i+=1
                 j-=1
             else:
                 remove_i = s[:i] + s[i+1:]
                 remove_j = s[:j] + s[j+1:]
 
                 return remove_i == remove_i[::-1] or remove_j == remove_j[::-1]