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.

 

应该算是leetcode上最简单的题之一了吧。双指针可搞定。。

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

 

posted on 2014-11-18 23:59  metalx  阅读(148)  评论(0编辑  收藏  举报