每日一题-字符串 leetcode125

160 阅读1分钟

一、题目描述

二、题目思路

  1. 回文串的定义是,从左往右和从右往左是一样的
  2. StringBuilderappend()函数可以增加字符,同时自带reverse()反转函数
  3. 存在的问题是,标点符号的判断,大小写的转换
  4. CharacterisLetterOrDigit(char) 函数可以判断字符是否是字母或数字

Character同样存在 isLetter(char)函数判断字符是否为字母及isDigit(char)函数判断字符是否为数字

  1. CharactertoLowerCase(char) 函数可以将字符转换为小写字母

三、提交代码

class solution{
    public boolean isPalindrome(String s){
        StringBuilder sb = new StringBuilder();
        for(int i =0;i<s.length();i++){
            if(Character.isLetterOrDigit(s.charAt(i))){
                sb.append(s.charAt(i));
            }
        }
        int left =0;
        int right =sb.length()-1;
        while(left<right){
            if(Character.toLowerCase(sb.charAt(left)) != Character.toLowerCase(sb.charAt(right))){
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
}