程序媛詹妮弗
终身学习

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 }

 

posted on 2018-10-19 16:37  程序媛詹妮弗  阅读(112)  评论(0编辑  收藏  举报