class Solution(object):
def is_palindrome(self, s, left, right):
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
def validPalindrome(self, s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return self.is_palindrome(s, left + 1, right) or self.is_palindrome(s, left, right - 1)
left += 1
right -= 1
return True
Y2xhc3MgU29sdXRpb24ob2JqZWN0KToKICAgIGRlZiBpc19wYWxpbmRyb21lKHNlbGYsIHMsIGxlZnQsIHJpZ2h0KToKICAgICAgICB3aGlsZSBsZWZ0IDwgcmlnaHQ6CiAgICAgICAgICAgIGlmIHNbbGVmdF0gIT0gc1tyaWdodF06CiAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgbGVmdCArPSAxCiAgICAgICAgICAgIHJpZ2h0IC09IDEKICAgICAgICByZXR1cm4gVHJ1ZQoKICAgIGRlZiB2YWxpZFBhbGluZHJvbWUoc2VsZiwgcyk6CiAgICAgICAgbGVmdCwgcmlnaHQgPSAwLCBsZW4ocykgLSAxCgogICAgICAgIHdoaWxlIGxlZnQgPCByaWdodDoKICAgICAgICAgICAgaWYgc1tsZWZ0XSAhPSBzW3JpZ2h0XToKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmlzX3BhbGluZHJvbWUocywgbGVmdCArIDEsIHJpZ2h0KSBvciBzZWxmLmlzX3BhbGluZHJvbWUocywgbGVmdCwgcmlnaHQgLSAxKQogICAgICAgICAgICBsZWZ0ICs9IDEKICAgICAgICAgICAgcmlnaHQgLT0gMQoKICAgICAgICByZXR1cm4gVHJ1ZQ==