Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,"A man, a plan, a canal: Panama"
is a palindrome."race a car"
is not a palindrome.
class Solution(object):
def check(self, s):
if s.isdigit() or s.isalpha():
return True
return False
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
s = s.lower()
if not s or not s.strip():
return True
i, j = 0, len(s) - 1
while i < j:
while i < j and not self.check(s[i]):
i += 1
while i < j and not self.check(s[j]):
j -= 1
if s[j] != s[i]:
return False
i += 1
j -= 1
return True