LeetCode_验证回文串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangvalue/article/details/89015979

题目描述:

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

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

示例 1:

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

示例 2:

输入: "race a car"
输出: false

思路:因为所给的字符串中既含有标点符号又含有空格,需要对字符串中的字符进行处理  

          首先将所有的字符都转成小写(或者大写)

          在对字符串进行遍历,将符合标准的字符添加到一个新的字符串中

          最后对新的字符串进行reverse反转前后的equals

class Solution {
    public boolean isPalindrome(String s) {
        if(s.length()==0){
            return true;
        }
        //首先将字符串直接转为小写字符串
        s=s.toLowerCase();
        //创建一个StringBuffer类用来接收
        StringBuilder str=new StringBuilder();
        //对s进行遍历
        for(int i=0;i<s.length();i++){
            //将s中符合标准的数字和字母都抽出来存入到stringbuffer中
            if(s.charAt(i)>='0'&& s.charAt(i)<='9'||s.charAt(i)>='a'&&s.charAt(i)<='z'){
                str.append(s.charAt(i));
            }
        }
        //最后直接对处理后的stringbuffer进行reverse并进行equals比较
        return str.toString().equals(str.reverse().toString());
    }
}

猜你喜欢

转载自blog.csdn.net/zhangvalue/article/details/89015979