判断是否为回文字符串
def onlyNumOrChar(self,s):
l=list()
s=s.lower()
for i in s:
if i in 'abcdefghijklmnopqrstuvwxyz0123456789':
l.append(i)
return ''.join(l)
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
s=self.onlyNumOrChar(s)
if s==s[::-1]:
return True
return False
def isPalindrome_2(self,s):
i,j=0,len(s)-1
while i<j:
while i<j and not s[i].isalnum():
i+=1
while i<j and not s[j].isalnum():
j-=1
if s[i].lower()!= s[j].lower():
return False
i+=1
j-=1
return True
第一种方法先对字符串进行了处理,第二种比较好(两个指针)。