125. Valid Palindrome

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 isPalindrome(string s) {
        int i=0,j=s.size()-1;
        while(i<=j)
        {
            if(!isAlpha(s[i]))
            {
                i++;
                continue;
            }
            if(!isAlpha(s[j]))
            {
                j--;
                continue;
            }
            if(s[i]!=s[j])
               return false;
            i++;
            j--;
        }
        return true;
    }
    
    bool isAlpha(char &c)
    {
        if('A'<=c&&c<='Z')
        {
            c = c-'A'+'a';
            return true;
        }
        return ('a'<=c&&c<='z')||('0'<=c&&c<='9');
    }
    
};

你可能感兴趣的:(125. Valid Palindrome)