题目
判断是否回文
代码
public class Solution {
public boolean isPalindrome(String s) {
if(s==null){
return false;
}
if(s.length()==0){
return true;
}
int i =0;
int j = s.length()-1;
while(i<j){
while(i<s.length() && !valid(s.charAt(i))){
i++;
}
if(i>=j){
return true;
}
while(j>=0 && !valid(s.charAt(j))){
j--;
}
if(i>=j){
return true;
}
if(!equal(s.charAt(i),s.charAt(j))){
return false;
}
i++;
j--;
}
return true;
}
public boolean valid(char c){
if((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9')){
return true;
}
return false;
}
public boolean equal(char c1,char c2){
if(c1>='A'&& c1<='Z'){
c1 = (char)('a'+(c1-'A'));
}
if(c2>='A'&& c2<='Z'){
c2 = (char)('a'+(c2-'A'));
}
if(c1==c2){
return true;
}
else{
return false;
}
}
}
细节
1 注意大小写的转换
2 注意是否判断 0-9