Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama"
is a palindrome.
"race a car"
is not a palindrome.
注解:双指针从左右向中间移动,跳过不合法字符
bool isPalindrome(string s) {
int n = s.size();
for( int i = 0, j = n-1; i < j; ++i, --j )
{
while( isalnum(s[i]) == false && i < j ) ++i;
while( isalnum(s[j]) == false && i < j ) --j;
if( toupper(s[i]) != toupper(s[j]) )
return false;
}
return true;
}