首页 > 考试 > 其他 > 正文
【Leetcode】125. Valid Palindrome
2017-01-11       个评论    来源:筱葭的博客  
收藏    我要投稿

方法一:双指针

思路:

(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

点击复制链接 与好友分享!回本站首页
上一篇:[BZOJ2300][HAOI2011]防线修建(凸包+splay)
下一篇:最后一页
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站