1、题目描述
判断一个字符串是否是回文字符串(只判断字符串中的字母和数字)。
2、思想
设置另个指针,第一个指针从前向后,第二个在指针从后向前,一次判断两个指针所指的字符是否相同,直到两个指针相遇都没有发现不同的字符,则该字符串是回文字符串(要注意跳过字符串中非字母和数字的字符)。
3、代码实现
class Solution {
public boolean isPalindrome(String s) {
if(s.length() == 0){
return true;
}
s = s.toLowerCase();
int low = 0;
int high = s.length() - 1;
while(low < high){
while(low<high && !Character.isLetterOrDigit(s.charAt(low))){
low++;
}
while(low<high && !Character.isLetterOrDigit(s.charAt(high))){
high--;
}
if( low<high && s.charAt(low)==s.charAt(high)){
low++;
high--;
}else if(low==high){
return true;
}else{
return false;
}
}
return true;
}
}