Valid Palindrome

class Solution {
    public boolean isPalindrome(String s) {
        if (s == null) {
            return true;
        }
        
        int i = 0;
        int j = s.length() - 1;
        
        while (i < j) {
            char left = s.charAt(i);
            char right = s.charAt(j);
            
            if (!isAlphaNumeric(left)) {
                i++;
            } else if (!isAlphaNumeric(right)) {
               j--; 
            } else if (Character.toLowerCase(left) != Character.toLowerCase(right)) {
                return false;
            } else {
                i++;
                j--;
            }
        }
        return true;
    }
    
    private boolean isAlphaNumeric(char c) {
        return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
    }
}

最后更新于

这有帮助吗?