Leetcode 125. Valid Palindrome

来源:互联网 发布:美国历史人物 知乎 编辑:程序博客网 时间:2024/05/21 10:28

Question

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

For example,
“A man, a plan, a canal: Panama” is a palindrome.
“race a car” is not a palindrome.

code

 /**     * 常规解法     *     * @param s     * @return     */    public boolean isPalindrome(String s) {        StringBuilder res = new StringBuilder();        for (char t : s.toLowerCase().toCharArray()) {            if ((t >= '0' && t <= '9') || (t >= 'a' && t <= 'z')) {                res.append(t);            }        }        return res.toString().equals(res.reverse().toString());    }
 /**     * 左右指针     *     * @param s     * @return     */    public boolean isPalindromeP(String s) {        if (s == null) {            return false;        }        int len = s.length();        int left = 0;        int right = len - 1;        s = s.toLowerCase();        while (left < right) {            if (!Character.isLetterOrDigit(s.charAt(left))) {                left++;            } else if (!Character.isLetterOrDigit(s.charAt(right))) {                right--;            } else if (s.charAt(left) != s.charAt(right)) {                return false;            } else {                left++;                right--;            }        }        return true;    }
0 0
原创粉丝点击