题目:
算法思想:回文串是对称的串,题目的意思是忽略字符大小写和其他字符,只考虑字母和数字。那么就是从字符串的首尾向中间扫描判断即可。
代码:
bool isPalindrome(string s) {
int begin = 0;
int end = s.length();
while(begin < end)
{
if( (s[begin] < 'A' || s[begin] > 'Z') && (s[begin] < 'a' || s[begin] > 'z') && (s[begin] < '0' || s[begin] > '9') )
{
begin++;
continue;
}
if( (s[end] < 'A' || s[end] > 'Z') && (s[end] < 'a' || s[end] > 'z') && (s[end] < '0' || s[end] > '9') )
{
end--;
continue;
}
if(tolower(s[begin]) == tolower(s[end]) )
{
begin++;
end--;
}
else
{
return false;
}
}
return true;
}