频道栏目
首页 > 考试 > 其他 > 正文

【Leetcode】125. Valid Palindrome

2017-01-11 11:13:00      个评论    来源:筱葭的博客  
收藏   我要投稿

方法一:双指针

思路:

(1)若s为null或空串,则返回true。

(2)将s作小写转换,并去掉其中的非字母数字字符。

(3)双指针,分别从左、右开始向中间判断,一旦左右对称位置的字符不相等,即返回false。

public class Solution {
    public boolean isPalindrome(String s) {
        if (s == null || s.length() == 0)
            return true;
        s = s.toLowerCase();
        s = s.replaceAll("[^a-zA-Z0-9]", "");
        int len = s.length();
        for (int i = 0, j = len - 1; i <= j; i++, j--) {
            if (s.charAt(i) != s.charAt(j))
                return false;
        }
        return true;
    }
}

Runtime:34ms

方法二:

思路:

(1)若s为null或空串,则返回true。

(2)将s作小写转换,并去掉其中的非字母数字字符。

(3)从两端向中间判断,一旦左右对称位置的字符不相等,即返回false。

public class Solution {
    public boolean isPalindrome(String s) {
        if (s == null || s.length() == 0)
            return true;
        s = s.toLowerCase();
        s = s.replaceAll("[^a-zA-Z0-9]", "");
        int len = s.length();
        for (int i = 0; i < len / 2; i++) {
        	if (s.charAt(i) != s.charAt(len - i - 1))
        		return false;
        }
        return true;
    }
}

Runtime:33ms

上一篇:笔试题1. LeetCode OJ (1)
下一篇:【leetcode】21. Merge Two Sorted Lists
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训

版权所有: 红黑联盟--致力于做实用的IT技术学习网站