首页 > 代码库 > Leetcode Valid Palindrome

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 left= 0 , right = s.length()-1;        while(left <= right){            while(left<=right && !isalnum(s[left])) left++;            while(left<=right && !isalnum(s[right])) right--;            if(left > right) break;            if(isalpha(s[left]) && isalpha(s[right]) && tolower(s[left]) == tolower(s[right])){                left++;                right--;            }            else if(isdigit(s[left])&& isdigit(s[right]) && s[left] == s[right]){                left++;                right--;            }            else break;        }        if(left <= right) return false;        else return true;    }};