smilevchy's blog

Life & Study & Chasing

Leetcode_Valid Palindrome

原题链接: https://oj.leetcode.com/problems/valid-palindrome/

public boolean isPalindrome(String s) {
    if (s == null) return false;

    s = s.trim();

    if (s.equals("")) return true;

    int i = 0;
    int j = s.length() - 1;
    char leftChar;
    char rightChar;

    while (i < j) {
        leftChar = s.charAt(i);

        if ((leftChar < 'a' || leftChar > 'z') && (leftChar < 'A' || leftChar > 'Z') && (leftChar < '0' || leftChar > '9')) {
            i++;
            continue;
        }

        rightChar = s.charAt(j);

        if ((rightChar < 'a' || rightChar > 'z') && (rightChar < 'A' || rightChar > 'Z') && (rightChar < '0' || rightChar > '9')) {
            j--;
            continue;
        }

        if (leftChar > rightChar) {
            if (leftChar - 32 != rightChar) return false;
        } else if (leftChar < rightChar) {
            if (leftChar + 32 != rightChar) return false;
        }

        i++;
        j--;
    }

    return true;
}

algorithm

« Leetcode_Count and Say Leetcode_Longest Common Prefix »