问题描述:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
算法思路:
首先,去除所有非字母和数字的字符,然后统一大小写,再来进行比较。简单的比较可以判断反转前后的字符串是否相同。
最快的方法在官方提供的范例中,引入了正则表达式的方法,把所有匹配的字符(字母或者数字)加到空字符串中并转换成小写,然后再来反转比较。非常简洁高效。
代码:
import re
a = ''.join(re.findall('[0-9a-zA-Z]+',s)).lower()
return a == a[::-1]