一、题目描述
二、题目思路
- 回文串的定义是,从左往右和从右往左是一样的
StringBuilder的append()函数可以增加字符,同时自带reverse()反转函数
- 存在的问题是,标点符号的判断,大小写的转换
Character的 isLetterOrDigit(char) 函数可以判断字符是否是字母或数字
Character同样存在 isLetter(char)函数判断字符是否为字母及isDigit(char)函数判断字符是否为数字
Character的 toLowerCase(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;
}
}