注意输入是数字的情况
class Solution {
public:
bool isPalindrome(string s) {
int l = 0;
int r = s.size()-1;
while(l < r){
while(l < r && !((s[l] >= 'A' && s[l] <='Z') ||(s[l] >= 'a' && s[l] <='z') || (s[l] >= '0' && s[l] <='9') )) l++;
while(l < r && !((s[r] >= 'A' && s[r] <='Z') ||(s[r] >= 'a' && s[r] <='z') || (s[r] >= '0' && s[r] <='9'))) r--;
if(l >= r) return true;
if(s[l] >= 'A' && s[l] <='Z'){
s[l]=s[l]-'A'+'a';
}
if(s[r] >= 'A' && s[r] <='Z'){
s[r]=s[r]-'A'+'a';
}
if(s[l] != s[r]) return false;
l++;
r--;
}
return true;
}
};
本文介绍了一个C++实现的字符串回文检查算法,该算法能够忽略大小写和非字母数字字符,有效判断字符串是否为回文。通过双指针技术从两端向中间遍历,比较字符的相等性。
441

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



