反思:又犯了字符加空格的错误,编译器不会报字符里面有空格的错误。。。。
和普通的判断回文数一样,只不过判断之前得判断字符是不是数字或者字母即可。
class Solution {
public:
bool isPalindrome(string s) {
int n =s.length();
if(n <= 0)
return true;
int left = 0, right = n - 1;
while(left < right){
//字符不是数字或者字母
if(( (s[left] >= '0' && s[left] <= '9') || (s[left] >= 'a'&& s[left] <= 'z') || (s[left] >= 'A' && s[left] <= 'Z') ) == false){
left++;
continue;
}
//同上
if(( (s[right] >= '0' && s[right] <= '9') || (s[right] >= 'a' && s[right] <= 'z') || (s[right] >= 'A' && s[right] <= 'Z') ) == false ){
right--;
continue;
}
//相等或者是大小写判断下一个
if(s[left] == s[right] || abs(s[left] - s[right] ) == 32){
left++;
right--;
continue ;
}
return false;
}
return true;
}
};