首页 > 代码库 > Valid Palindrome

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 len = s.length(), ind = 0;        if(len==0) return true;        len--;        while(ind<len){            while(!isValid(s[ind])&&ind<len){ind++;}            while(!isValid(s[len])&&ind<len){len--;}            if(!(s[ind]==s[len] || abs(s[ind]-s[len])==32))            return false;            ind++;            len--;        }        return true;    }    bool isValid(char c){        if(c>=0&&c<=9) return true;        if(c>=a&&c<=z) return true;        if(c>=A&&c<=Z) return true;        return false;    }};

 

Valid Palindrome