本题比较简单,用两个指针从两头开始遍历即可
AC代码:
class Solution {
public:
bool isletter(char n){
if((n>='a'&&n<='z')||(n>='A'&&n<='Z'))
return true;
return false;
}
bool isPalindrome(string s) {
int i=0,j=s.size()-1;
while(i<j){
if(!isletter(s[i])&&!(s[i]>='0'&&s[i]<='9'))
{i++;continue;}
if(!isletter(s[j])&&!(s[j]>='0'&&s[j]<='9'))
{j--;continue;}
if(s[i]!=s[j]&&!(isletter(s[i])&&isletter(s[j])&&abs(s[i]-s[j])==abs('A'-'a')))
return false;
else
{i++;j--;}
}
return true;
}
};