验证回文串

228 阅读1分钟

验证回文串

说明

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

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

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true
解释:"amanaplanacanalpanama" 是回文串

示例 2:

输入: "race a car"
输出: false
解释:"raceacar" 不是回文串

提示:

  • 1 <= s.length <= 2 * 105
  • 字符串 s 由 ASCII 字符组成

来源:力扣(LeetCode) 链接:leetcode.cn/problems/va…

题解

解法

    public static void main(String[] args) {
        System.out.println(demo("A man, a plan, a canal: Panama"));
        System.out.println(demo("race a car"));
    }
​
    public static  boolean demo(String s){
        StringBuilder str = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if((c >= 'A' && c <= 'Z') ){
                str.append((char)(c + 32));
            }else if( (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')){
                str.append(c);
            }
        }
        for (int i =  str.length() / 2 ; i > 0; i--) {
            if(str.charAt(i-1) != str.charAt(str.length() - i)){
                return false;
            }
        }
        return true;
    }

\