[LeetCode] 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.size();
        if(len<2)
            return true;
        
        for(int i=0,j=len-1;i<j;i++,j--){
          
          while(i<len && ((s[i] >= 'a' && s[i] <= 'z') || (s[i]>='A' && s[i]<='Z') || (s[i]>='0' && s[i]<='9'))==false)
           i++;
          while(j>=0 && ((s[j] >= 'a' && s[j] <= 'z') || (s[j]>='A' && s[j]<='Z') || (s[j]>='0' && s[j]<='9'))==false)
           j--;
          if(i<j && ((s[i]== s[j] || abs(s[i]-s[j])=='a'-'A')==false))
           return false;
        
        }
        return true;

    }
};
原文地址:https://www.cnblogs.com/Xylophone/p/3885672.html