Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Note: For the purpose of this problem, we define empty string as valid palindrome.
Example 1:
Input: “A man, a plan, a canal: Panama”
Output: true
Example 2:
Input: “race a car”
Output: false
C++
bool isPalindrome(string s) {
bool res = true;
int i = 0;
int j = s.size()-1;
while(i <= j)
{
if(!isalnum(s[i]))
{
++i;
continue;
}
if(!isalnum(s[j]))
{
--j;
continue;
}
if(isalnum(s[i])&&isalnum(s[j]))
{
if(tolower(s[i]) != tolower(s[j]))
{
res = false;
break;
}
else
{
++i;
--j;
}
}
}
return res;
}