首页 > 其他 > 详细

验证回文串

时间:2019-12-04 20:18:00      阅读:85      评论:0      收藏:0      [点我收藏+]

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

思路:双指针

代码:

class Solution {
    public boolean isPalindrome(String s) {
        if(s==""||s==null){
            return true;
        }
        int n=s.length();//n为s的长度
        boolean flag=true;//如果是回文,则为true。默认为true
        //判断回文
        //利用双指针进行判断
        int i=0,j=n-1;
        for(;i<j;i++,j--){
            char c1=Character.toLowerCase(s.charAt(i));//将两个字符都转换成小写
            char c2=Character.toLowerCase(s.charAt(j));
            while(i<j&&!Character.isLetterOrDigit(c1)){//如果字符属于字母或数字,就跳过,直到找到是字母或数字的字符为止
                c1=Character.toLowerCase(s.charAt(++i));
            }
            while(i<j&&!Character.isLetterOrDigit(c2)){
                c2=Character.toLowerCase(s.charAt(--j));
            }
            if(c1!=c2){//如果有不等的字符就说明不是回文
                flag=false;
                break;
            }
        }
        return flag;
    }
}
注意:这题里面如果没有一个字符是数字或者字母,也被认为是true

验证回文串

原文:https://www.cnblogs.com/xbc121/p/11984742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!