题目分析:给定一个字符串,忽略大小写和数字,判断是否为回文串。即判断这个字符串从头看和从尾看都是一致的
C++:
bool isPalindrome(string s) {
if(s.empty())
return true;
string str;
for(auto c : s)
if(isalnum(c))
str += tolower(c); //将字母统一为小写
for(int i = 0, j = str.size(); i < j/2; i++)
if(str[i] != str[j-i-1])
return false;
return true;
}
Python:
代码中注释的是使用正则表达式的,可以参考:https://blog.youkuaiyun.com/lly1122334/article/details/99662228
def isPalindrome(self, s: str) -> bool:
str = ""
for c in s:
if c.isalnum():
str += c.lower()
#s = [*filter(str.isalnum, s.lower())]
return str == str[::-1]