题目翻译
给定一串字符串,只考虑数字和字母,并且字母不区分大小写,则判定这个字符串是回文字符串。
思路
这里用到了alnum:判断是不是字母,lower:将大写字母转化为小写字母。
判断是否是回文字符串的方法:
判断字符串的第i个字母和第length-i-1个字母是否相等。
代码
class Solution:
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
new_s = []
for c in s:
if c.isalnum():
new_s.append(c.lower())
length = len(new_s)
for i in range(int(length/2)):
if new_s[i] != new_s[length - i-1]:
return False
return True
改进代码
class Solution:
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
cleanlist = [c for c in s.lower() if c.isalnum()]
return cleanlist == cleanlist[::-1]