Valid Palindrome

LeetCode #125


Description:

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

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.

Example:

For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.

Idea:

in header <cctype>

isalnum()
isalpha()

in header <locale>

tolower()

Code:

class Solution {
public:
    bool isPalindrome(string s) {
        int i=0; 
        int j=s.size()-1;

        while(i<j){
            while(!isalnum(s[i]) && i<j) i++;
            while(!isalnum(s[j]) && i<j) j--;
            if(i==j) return true;

            if(tolower(s[i])!=tolower(s[j])) return false;
            else{
                i++;
                j--;
            }
        }

        return true;
    }
};

results matching ""

    No results matching ""