1. 具體題目正則表達式
給定一個字符串,驗證它是不是迴文串,只考慮字母和數字字符,能夠忽略字母的大小寫。說明:本題中,咱們將空字符串定義爲有效的迴文串。spa
示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true指針
示例 2: 輸入: "race a car" 輸出: falsecode
2. 思路分析blog
對於給定的字符串,其中可能包括有無效字符,因此須要先將原字符串中的無效字符去掉(用正則表達式判斷),獲得新字符串後用雙指針比較首尾字符是否相等。字符串
3. 代碼class
public boolean isPalindrome(String s) { //字符串爲null和長度爲0是不一樣的 if(s == null || s.length() == 0) return true; String str = s.replaceAll("[^0-9a-zA-Z]","").toLowerCase(); int left = 0; int right = str.length() - 1; while(left < right){ if(str.charAt(left) != str.charAt(right)){ return false; } left++; right--; } return true; }