给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-palindrome 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解:先介绍filter 的相关用法 crazystring = 'dade142.!0142f[., ]ad' # 只保留数字 new_crazy = filter(str.isdigit, crazystring) print(''.join(list(new_crazy))) #输出:1420142 # 只保留字母 new_crazy = filter(str.isalpha, crazystring) print(''.join(list(new_crazy))) #睡出:dadefad # 只保留字母和数字 new_crazy = filter(str.isalnum, crazystring) print(''.join(list(new_crazy))) #输出:dade1420142fad # 如果想保留数字0-9和小数点'.' 则需要自定义函数 new_crazy = filter(lambda ch: ch in '0123456789.', crazystring) print(''.join(list(new_crazy))) #输出:142.0142.
class Solution(object):
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
# s = filter(str.isalnum , str( s.lower()))
# if s == s[::-1]:
# return True
# return False
s = ''.join(filter(str.isalnum,str(s))).lower()
return s==s[::-1]