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