Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,"A man, a plan, a canal: Panama"
is a palindrome."race a car"
is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
Hide Similar Problems
public class Solution { public boolean isPalindrome(String s) { s = s.trim(); if(s == null || s.length() == 0) return true; String oldStr = ""; String newStr = ""; int i = 0; int j = s.length() - 1; while(i < j){ //!Character.isLetterOrDigit(s.charAt(i)); if(s.charAt(i) < '0' || s.charAt(i) > '9' && s.charAt(i) < 'A' || s.charAt(i) > 'Z' && s.charAt(i) < 'a' || s.charAt(i) > 'z'){ System.out.println(i); i++; continue; } if(s.charAt(j) < '0' || s.charAt(j) > '9' && s.charAt(j) < 'A' || s.charAt(j) > 'Z' && s.charAt(j) < 'a' || s.charAt(j) > 'z'){ j--; continue; } if(Character.toUpperCase(s.charAt(i)) != Character.toUpperCase(s.charAt(j))){ return false; } i++; j--; } return true; } }