验证回文串

验证回文串_第1张图片

 

class Solution {
    public boolean isPalindrome(String s) {
     if (s.length() == 1){
            return true;
        }
        int i = 0, j = s.length() - 1;
        while (i <= j) {
            char left = s.charAt(i);
            char right = s.charAt(j);
            //判断左边的字符是否为字母或是数字
            if (left <= 'z' && left >= 'a' || 'A' <= left && left <= 'Z' || left >= '0' && left <= '9') {
                //如果不是小写字母就进行加运算(这里不管是大写字母还是数字。左右进行相同的运算不影响结果)
                if (!('a' <= left && left <= 'z')) {
                    left = (char) (left + 32);
                }
            } else {
                i++;
                continue;
            }
            //对左边进行判断
            if (right <= 'z' && right >= 'a' || 'A' <= right && right <= 'Z' || right >= '0' && right <= '9') {
                if (!('a' <= right && right <= 'z')) {
                    right = (char) (right + 32);
                }
            } else {
                j--;
                continue;
            }
            //如果相同则进行下一次遍历。不同则直接返回false
            if (left == right) {
                i++;
                j--;
                continue;
            } else {
                return false;
            }

        }
        return true;
    }
}

验证回文串_第2张图片

 

你可能感兴趣的:(leetcode,算法,java)