给定一个字符串,请仅考虑字母数字字符并忽略大小写,从而确定它是否是回文。 注意:为解决此问题,我们将空字符串定义为有效回文。
Input: "A man, a plan, a canal: Panama"
Output: True
Input: ''I like Dota.''
Output: False
首先去掉空格,replace(' ','')然后转换大小写.lower()
接下来用string.punctuation去掉里面的标点符号
最后把字符转换过来,看看和原来的一不一样就ok了。
class Solution:
def isPalindrome(self, s: str) -> bool:
s=s.replace(' ','').lower()
s = ''.join(_ for _ in s if _ not in string.punctuation)
if s==s[::-1]:
return True
else:
return False
我竟然想过用pop方法把第一个和最后一个比较之后pop出去然后循环,我可能是个憨憨。。。