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.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
判断字符串里的内容是否回文。
class Solution {
public:
bool isStr(char &str)
{
if(str >= 'A' && str <= 'Z')
{
str += 32;
return true;
}
else if(str >= 'a' && str <= 'z')
return true;
else if(str >= '0' && str <= '9')
return true;
else
return false;
}
bool isPalindrome(string s) {
//if(s.empty())
//return true;
int i = 0;
int j = s.length()-1;
while(i<j)
{
if(!isStr(s[i]))
{
i++;
}
else if(!isStr(s[j]))
{
j--;
}
else if(s[i++] != s[j--])
return false;
}
return true;
}
};