考察知识点
- 回文字符串
- tolower()
题目解析
题意
给你一个字符串去除非字母数字字符和忽略大小写后,如果正着读和反着读都一样(空串我们认为是回文),则认为是回文字符串。
解析
- 定义一个新字符串str
- 遍历给定字符串过滤非字母数字字符,字母字符通过tolower()函数转化为小写字母
- 遍历处理后的字符串str,判断是否为回文字符串
AC code(C++)
#include <cctype>
class Solution {
public:
bool isPalindromeNickname(string s) {
string str;
for(int i=0;i<s.size();i++){
if(s[i]<='9'&&s[i]>='0'){
str+=s[i];
}
else if((s[i]<='z'&&s[i]>='a')||(s[i]<='Z'&&s[i]>='A')){
str+=tolower(s[i]);
}
}
for(int i=0,j=str.size()-1;i<=j;i++,j--){
if(str[i]!=str[j]){
return false;
}
}
return true;
}
};