class Solution {
public boolean isPalindrome(String s) {
if(s==""||s==null){
return true;
}
int n=s.length();//n为s的长度
boolean flag=true;//如果是回文,则为true。默认为true
//判断回文
//利用双指针进行判断
int i=0,j=n-1;
for(;i<j;i++,j--){
char c1=Character.toLowerCase(s.charAt(i));//将两个字符都转换成小写
char c2=Character.toLowerCase(s.charAt(j));
while(i<j&&!Character.isLetterOrDigit(c1)){//如果字符属于字母或数字,就跳过,直到找到是字母或数字的字符为止
c1=Character.toLowerCase(s.charAt(++i));
}
while(i<j&&!Character.isLetterOrDigit(c2)){
c2=Character.toLowerCase(s.charAt(--j));
}
if(c1!=c2){//如果有不等的字符就说明不是回文
flag=false;
break;
}
}
return flag;
}
}