给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可忽略字母的大小写。
说明:我们将空字符串定义为有效的回文串。
示例1:
输入: "A man, a plan, a canal:Panama"
返回:true
示例2:
输入: "race a car"
返回: false
方法1:
思路:用str.isalnum()检测字符串是不是由字母和数字组成,删掉多余的空格,再判断是否是否与倒序排列相等,若相等则为回文字符串。
class Solution:
def isPalindrome(self, s):
s_filter = ''.join(filter(str.isalnum, s)).lower()
return s_filter == s_filter[::-1]
方法2:
思路:新建列表,将字符串中的字母数字添加新列表中去,再判断是否为回文字符串。
class Solution:
def isPalindrome(self, s):
s = s.lower()
character = 'abcdefghijklmnopqrstuvwxyz0123456789'
l = []
for i in s:
if i in character:
l.append(i)
if l == l[::-1]:
return True
return False