这个题我用了两个函数,导致很简单。
toupper变成大写。
isalnum 判断是不是数字和字母
bool isPalindrome(string s) {
if(s.empty()) return true;
int len = s.size();
if(len == 1) return true;
int left = 0;
int right = len - 1;
while(left<right){
char tmp;
while(left<=right){
if(isalnum(s[left])){
tmp = s[left++];
break;
}else{
left++;
continue;
}
}
while(left<=right){
if(isalnum(s[right])){
if(toupper(tmp) == toupper(s[right])){
right--;
break;
} else return false;
}else{
right--;
continue;
}
}
}
return true;
}
本文介绍了一个使用C++实现的字符串回文检查算法。该算法通过将字符串中的非字母数字字符过滤掉,并忽略大小写差异来判断一个字符串是否为回文。通过对字符串两端逐个比较字符的方式实现了高效检查。

732

被折叠的 条评论
为什么被折叠?



