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.

Solution: Linear traversal using for loop

bool isPalindrome(string s) {
    if (s.size() == 0) return true;
    for (int i=0, j=s.size()-1; i<j; i++, j--) {
        while (i < j && !isalnum(s[i])) i++;
        while (i < j && !isalnum(s[j])) j--;
        if (tolower(s[i]) != tolower(s[j])) return false;
    }
    return true;
}

Solution: Linear traversal using while loop

bool isPalindrome(string s) {
    if (s.size() == 0) return true;

    int i=0, j=s.size()-1;
    while (i < j) {
        while (i < j && !isalnum(s[i])) i++;
        while (i < j && !isalnum(s[j])) j--;

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

results matching ""

    No results matching ""