文章目录
思路
👨🏫 参考题解
 Character.isLetterorDigit(char c):判读字符 c 是否是字母或者数字
 Character.toLowerCase(char c):将字符 c 转换为小写字母
复杂度
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)
Code
class Solution {
    public boolean isPalindrome(String s) {
        int l = 0;
        int r = s.length() - 1;
        while(l < r )
        {
            while(l < r && !Character.isLetterOrDigit(s.charAt(l)))//跳过无效字符
                l++;
            while(l < r && !Character.isLetterOrDigit(s.charAt(r)))//跳过无效字符
                r--;
            if(Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r)))
                return false;
            l++;
            r--;
        }
        return true;
    }
}









