16、验证回文字符串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
答案解析:
class Solution {
public boolean isPalindrome(String s) {
if (s.length() < 0 || s == null){
return false;
}
s = s.toLowerCase();//转换为小写
String target = "";
for (int i = 0; i < s.length();i ++){
if ('a' <= s.charAt(i) && s.charAt(i) <='z'){
target +=s.charAt(i);
}else if ('0' <= s.charAt(i) && s.charAt(i) <='9'){
target +=s.charAt(i);
}else {
continue;
}
}
//此时target只有字母和数字字符
char[] temp = new char[target.length()];
for (int i = target.length()-1,j = 0; i >= 0&&j < target.length();i --,j ++){
temp[j] = target.charAt(i);
}
for (int i = 0; i < target.length(); i ++){
if (temp[i] != target.charAt(i)){
return false;
}
}
return true;
}
}