0125. Valid Palindrome

0125. Valid Palindrome #

题目 #

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样,则可以认为该短语是一个 回文串

字母和数字都属于字母数字字符。

给定字符串 s,判断其是否为 回文串

思路 #

代码 #

class Solution {
    public boolean isPalindrome(String s) {
        int left = 0, right = s.length() - 1;
        while (left < right) {
            while (left < s.length() && Character.isLetterOrDigit(s.charAt(left)) == false) left += 1;
            while (right >= 0 && Character.isLetterOfDigit(s.charAt(right)) == false) right -= 1;
            if (left >= right) return true;
            if (Character.toLowerCase(s.charAt(left++)) != Character.toLowerCase(s.charAt(right--))) return false;
        }
        return true;
    }
}