# your code goes here
class Solution:
def validPalindrome(self, s: str) -> bool:
n = len(s)
count = 0
i, j = 0, n - 1
if n == 2: return True
if n == 3: return True if s[i] == s[j] else False
while i < j:
# print(f"before condition:{s[i]}, {s[j]}")
if count < 2 and s[i] == s[j]:
i += 1
j -= 1
# print(f"from first if i: {i}, j: {j}, s: {s}")
# print(f"{s[i]}, {s[j]}")
else:
count += 1
if count == 2: return False
print(count)
if s[i] == s[j-1]:
j -= 1
# print(f"from j movement if i: {i}, j: {j}, s: {s} ")
# print(f"{s[i]}, {s[j]}")
elif s[i+1] == s[j]:
i += 1
# print(f"from i movement if i: {i}, j: {j}, s: {s} ")
# print(f"{s[i]}, {s[j]}")
return True
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmNsYXNzIFNvbHV0aW9uOgogICAgZGVmIHZhbGlkUGFsaW5kcm9tZShzZWxmLCBzOiBzdHIpIC0+IGJvb2w6CiAgICAgICAgCiAgICAgICAgICAgIG4gPSBsZW4ocykKICAgICAgICAgICAgY291bnQgPSAwCiAgICAgICAgICAgIGksIGogPSAwLCBuIC0gMQogICAgICAgICAgICAKICAgICAgICAgICAgaWYgbiA9PSAyOiByZXR1cm4gVHJ1ZQogICAgICAgICAgICBpZiBuID09IDM6IHJldHVybiBUcnVlIGlmIHNbaV0gPT0gc1tqXSBlbHNlIEZhbHNlCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgd2hpbGUgaSA8IGo6CiAgICAgICAgICAgICAgICAjIHByaW50KGYiYmVmb3JlIGNvbmRpdGlvbjp7c1tpXX0sIHtzW2pdfSIpCiAgICAgICAgICAgICAgICBpZiBjb3VudCA8IDIgYW5kICBzW2ldID09IHNbal06CiAgICAgICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgICAgICAgICAgaiAtPSAxCiAgICAgICAgICAgICAgICAgICAgIyBwcmludChmImZyb20gZmlyc3QgaWYgaToge2l9LCBqOiB7an0sIHM6IHtzfSIpCiAgICAgICAgICAgICAgICAgICAgIyBwcmludChmIntzW2ldfSwge3Nbal19IikKCiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDEKICAgICAgICAgICAgICAgICAgICBpZiBjb3VudCA9PSAyOiByZXR1cm4gRmFsc2UKICAgICAgICAgICAgICAgICAgICBwcmludChjb3VudCkKCiAgICAgICAgICAgICAgICAgICAgaWYgc1tpXSA9PSBzW2otMV06CiAgICAgICAgICAgICAgICAgICAgICAgIGogLT0gMQogICAgICAgICAgICAgICAgICAgICAgICAjIHByaW50KGYiZnJvbSBqIG1vdmVtZW50IGlmIGk6IHtpfSwgajoge2p9LCBzOiB7c30gIikKICAgICAgICAgICAgICAgICAgICAgICAgIyBwcmludChmIntzW2ldfSwge3Nbal19IikKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZWxpZiBzW2krMV0gPT0gc1tqXToKICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICMgcHJpbnQoZiJmcm9tIGkgbW92ZW1lbnQgaWYgaToge2l9LCBqOiB7an0sIHM6IHtzfSAiKQogICAgICAgICAgICAgICAgICAgICAgICAjIHByaW50KGYie3NbaV19LCB7c1tqXX0iKQoKCiAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAg