这个题我用了两个函数,导致很简单。
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;
}