给定一个字符串,只看其中的数字和字母,忽略大小写,判断字符串是否是回文串。
思想:两边各一个指针,找是a-z或数字的,进行比较
class Solution {
public boolean isPalindrome(String s) {
if(s=="")
return true;
//将小写转成大写
s=s.toLowerCase();
int i=0,j=s.length()-1;
while(i<j){
//如果说不是a-z和数字,就i++,直到找到是的
while(i<j&&!Character.isDigit(s.charAt(i))&&!(s.charAt(i)>='a'&&s.charAt(i)<='z'))
i++;
//如果说不是a-z和数字,就j--,直到找到是的
while(i<j&&!Character.isDigit(s.charAt(j))&&!(s.charAt(j)>='a'&&s.charAt(j)<='z'))
j--;
if(s.charAt(i)!=s.charAt(j))
return false;
i++;
j--;
}
return true;
}
}