Difficulty: Easy
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Note:  For the purpose of this problem, we define empty string as valid palindrome.
Example 1:
| 12
 
 | Input: "A man, a plan, a canal: Panama"Output: true
 
 | 
Example 2:
| 12
 
 | Input: "race a car"Output: false
 
 | 
Solution
Language: Java
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | class Solution {public boolean isPalindrome(String s) {
 if (s == null || s.length() == 0) {
 return true;
 }
 int left = 0;
 int 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 (left < right) {
 if (Character.toUpperCase(s.charAt(left)) != Character.toUpperCase(s.charAt(right))) {
 return false;
 } else {
 left++;
 right--;
 }
 }
 }
 return true;
 }
 }
 
 |