public boolean isPalindrome(String s) { s = s.toLowerCase(); int left = 0; int right = s.length() - 1; while (left < right) { while (left < right && !isValidChar(s.charAt(left))) { left ++; } while (left < right && !isValidChar(s.charAt(right))) { right --; } if (s.charAt(left) != s.charAt(right)) { returnfalse; } left++; right--; } returntrue; }
private boolean isValidChar(char x) { return (x >= '0' && x <= '9') || (x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z'); }