题目:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
举例:
输入: “A man, a plan, a canal: Panama”
输出: true
输入: “race a car”
输出: false
题干解析:
回文串:左右字符对称
注意:字符串中标点符号也占索引 如何删除字符串中的非字母数字字符
我的方法:利用filter()函数 str.isalnum
class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
#s = list(filter(str.isalpha,s)) #删除字符串中非字母元素
s = list(filter(str.isalnum,s)) #删除字符串中非字母元素
l = len(s)
if l == 0:
return True
for i in range(l//2):
if s[i] != s[l-1-i]:
return False
break
else:
i += 1
return True