通过Large Judge还挺不容易
public class Solution {
public boolean isPalindrome(String s) {
int i=0, j=s.length()-1;
while (i < j) {
char ci=' ', cj=' ';
while (i<j && !isLegit(ci = s.charAt(i)))
i++;
while (i<j && !isLegit(cj = s.charAt(j)))
j--;
if (i<j && !isSame(ci, cj))
return false;
i++;
j--;
}
return true;
}
private boolean isLegit(char c) {
if (c>='A'&&c<='Z' || c>='a'&&c<='z' || c>='0'&&c<='9')
return true;
else
return false;
}
private boolean isSame(char ci, char cj) {
int diff = (int)(ci-cj);
if (Math.abs(diff)==32 || diff==0)
return true;
else
return false;
}
}