问题描述:
解题思路:最简单办法采用双指针,p1从头走,p2从尾部走,验证p1和p2指向的字符是否相等。
注意一点体感中只考虑字母和数字字符,忽略大小写,所以预先对字符串进行过滤。
题解:
class Solution {
public boolean isPalindrome(String s) {
StringBuffer sb = new StringBuffer();
for(int i = 0;i<s.length();i++){
char ch = s.charAt(i);
if(Character.isLetterOrDigit(ch)){
sb.append(ch);
}
}
int n = sb.length();
int p1 = 0;
int p2 = n-1;
while(p1<p2){
if(Character.toLowerCase(sb.charAt(p1))!=Character.toLowerCase(sb.charAt(p2))){
return false;
}
p1++;
p2--;
}
return true;
}
}