首页 > 代码库 > LeetCode 125 Valid Palindrome

LeetCode 125 Valid Palindrome

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.

 

思路:

建立一个StringBuffer, 检查字符串,将字母与数字放入StringBuffer中,检查是否为回文构型。

 

解法:

 1 public class Solution 2 { 3     public boolean isPalindrome(String s) 4     { 5         if(s == null || s.length() == 0 || s.length() == 1) 6             return true; 7  8         StringBuffer strbuf = new StringBuffer(); 9 10         for(int i = 0; i < s.length(); i++)11         {12             char ch = s.charAt(i);13 14             if(Character.isLetter(ch) || Character.isDigit(ch))15                 strbuf.append(Character.toUpperCase(ch));16         }17 18         int left = 0;19         int right = strbuf.length() - 1;20         while(left < right)21         {22             if(strbuf.charAt(left) != strbuf.charAt(right))23                 return false;24             left++;25             right--;26         }27 28         return true;29     }30 }

 

LeetCode 125 Valid Palindrome