这道题就是用left和right两个指针去遍历String就好了。还有就是记住Character的几个API:isLetterOrDigit() 和 toLowerCase()。代码如下:
class Solution {
public boolean isPalindrome(String s) {
int left = 0, right = s.length() - 1;
while(left < right){
while(left < right && !Character.isLetterOrDigit(s.charAt(left))){
left++;
}
while(left < right && !Character.isLetterOrDigit(s.charAt(right))){
right--;
}
if(Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))){
return false;
}
left++;
right--;
}
return true;
}
}