思路
显然一个字符串不止包括字母和数字字符,所以我们可以先提取出来我们要进行比较的字符
还有一个问题是,字母是分大小写的,我们要统一大写或者统一小写,就是规范化
代码
class Solution(object):
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
letters = string.ascii_letters
digits = string.digits
s = s.lower()
s = [i for i in s if i in letters or i in digits]
return s[::-1] == s[:]
反思
可以看出这个提取是稍微繁琐的,在看别人速度快的代码的时候看到可以这样提取
new_s = "".join([i for i in s if i.isalnum() or i.isalpha()]).lower()
改成这个语句之后效率可以得到有效的提升
原文地址:https://www.cnblogs.com/MartinLwx/p/9688637.html
时间: 2024-11-05 14:56:52