1public boolean isPalindrome(String s) {
2 int left = 0;
3 int right = s.length() - 1;
4
5 while (left < right) {
6 if (!Character.isLetterOrDigit(s.charAt(left))) {
7 left++;
8 continue;
9 }
10 if (!Character.isLetterOrDigit(s.charAt(right))) {
11 right--;
12 continue;
13 }
14
15 if (Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))) {
16 return false;
17 }
18
19 left++;
20 right--;
21 }
22
23 return true;
24}