问题描述:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例:
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
思路分析:
首先将字符串s中的所有字符以及数字全部按原来的顺序放到一个新的字符串str中,对str中的字母进行大小写转换(方便后面比较),遍历数组,用第一个字符与最后一个作比较,用第二个和倒数第二个比较·······,以此类推,如果相同就进行下一次比较,如果不同直接返回false。
代码:
class Solution {
public boolean isPalindrome(String s) {
String str = "";
for(int i = 0;i<s.length();i++){
char a = s.charAt(i);
if(a>='0'&&a<='9' || a>='a'&&a<='z' || a>='A'&&a<='Z' ){
str+= a+"";
}
}
str = str.toLowerCase();
for(int j=0;j<str.length()/2;j++){
if(str.charAt(j)!=str.charAt(str.length()-1-j)){
return false;
}
}
return true;
}
}