标签:
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.
public class Solution { public boolean isPalindrome(String s) { if(s == null){ return false; } int i=0; int j=s.length()-1; while(i<j){ if(!isAlphanumeric(s.charAt(i))){ i++; continue; } if(!isAlphanumeric(s.charAt(j))){ j--; continue; } if(Character.toLowerCase(s.charAt(i)) == Character.toLowerCase(s.charAt(j))){ i++; j--; continue; } return false; } return true; } public boolean isAlphanumeric(char c){ if ((c >= ‘A‘ && c <= ‘Z‘) || (c >= ‘a‘ && c <= ‘z‘) || (c >= ‘0‘ && c <= ‘9‘)){ return true; } return false; } }
标签:
原文地址:http://www.cnblogs.com/incrediblechangshuo/p/5503852.html