【Leetcode】125. 验证回文串

242 阅读1分钟

题目描述

在这里插入图片描述

题解

思路很好想,先去除非字母的字符,然后所有字母大写变小写,然后判断是不是回文字符。但是测试用例居然把数字字符算进要考虑的范围了,太坑了。所以最后还需要加判断是否是数字,是字符或者数字都可以加进要判断的字符串中。

执行用时:4 ms, 在所有 Java 提交中击败了46.12%的用户

内存消耗:38.5 MB, 在所有 Java 提交中击败了56.90%的用户

通过测试用例:480 / 480

class Solution {
    public boolean isPalindrome(String s) {
        // 1.去除符号和空格,大写变小写
        StringBuilder sb = new StringBuilder();
        char[] chars = s.toCharArray();
        for (char c : chars) {
            if (Character.isLetter(c) || Character.isDigit(c)) {
                sb.append(Character.toLowerCase(c));
            }
        }
        // System.out.println(sb.toString());
        // System.out.println(sb.reverse().toString());
        // 2.判断是否是回文字符串
        if (sb.toString().equals(sb.reverse().toString())) {
            return true;
        }
        return false;
    }
}