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:
Input: "A man, a plan, a canal: Panama" Output: true
题目
判断回文串,只检查字母,不分大小写。
思路
双指针
代码
1 class Solution { 2 public boolean isPalindrome(String s) { 3 s = s.toLowerCase(); 4 int left = 0; 5 int right = s.length()-1; 6 while(left < right){ 7 // check white spaces 8 if(!Character.isLetterOrDigit(s.charAt(left))) left++; 9 // check white spaces 10 else if(!Character.isLetterOrDigit(s.charAt(right))) right--; 11 else if(s.charAt(left) != (s.charAt(right))) return false; 12 else { 13 left++ ; 14 right--; 15 } 16 } 17 return true; 18 } 19 }