判断是否回文,只判断数字和字母,在头尾设置两个指针,记得先转化成小写再进行比较,如果不是数字或者字母要记得跳过。
class Solution {
public:
bool isPalindrome(string s) {
if(s.empty()) return true;
int i = 0, j = s.size()-1;
while(i <= j){
while(i <= j && !isalnum(s[i])){
i++;
}
while(j >= 0 && !isalnum(s[j])){
j--;
}
if(i > j){
break;
}
if(tolower(s[i]) != tolower(s[j])){
return false;
}
i++, j--;
}
return true;
}
};