class Solution:
def isPalindrome(self, s: str) -> bool:
i = 0
j = len(s) - 1
while i <= j and i < len(s) - 1 and j >= 0:
if not (s[i].isalpha() or s[i].isdigit()):
i+=1
continue
if not (s[j].isalpha() or s[j].isdigit()):
j-=1
continue
if s[i].lower() != s[j].lower():
return False
else :
i+=1
j-=1
return True
Y2xhc3MgU29sdXRpb246CiAgICBkZWYgaXNQYWxpbmRyb21lKHNlbGYsIHM6IHN0cikgLT4gYm9vbDoKICAgICAgICBpID0gMCAKICAgICAgICBqID0gbGVuKHMpIC0gMQogICAgICAgIHdoaWxlIGkgPD0gaiBhbmQgaSA8IGxlbihzKSAtIDEgYW5kIGogPj0gMDoKICAgICAgICAgICAgaWYgbm90IChzW2ldLmlzYWxwaGEoKSBvciBzW2ldLmlzZGlnaXQoKSk6CiAgICAgICAgICAgICAgICBpKz0xCiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBpZiBub3QgKHNbal0uaXNhbHBoYSgpIG9yIHNbal0uaXNkaWdpdCgpKToKICAgICAgICAgICAgICAgIGotPTEKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIGlmIHNbaV0ubG93ZXIoKSAhPSBzW2pdLmxvd2VyKCk6CiAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgZWxzZSA6CiAgICAgICAgICAgICAgICBpKz0xCiAgICAgICAgICAgICAgICBqLT0xCiAgICAgICAgICAgIAoKCiAgICAgICAgcmV0dXJuIFRydWU=