說明:本題中,咱們將空字符串定義爲有效的迴文串。java
示例 1:git
輸入: "A man, a plan, a canal: Panama"
輸出: true
示例 2:code
輸入: "race a car"
輸出: falseleetcode
str.charAt();
Character.isLetterOrDigit();
時間複雜度O(n),空間複雜度O(1)。字符串
class Solution { public boolean isPalindrome(String s) { int p = 0; int q = s.length() - 1; while(p < q) { while(p<q && !Character.isLetterOrDigit(s.charAt(p))) p++; while(p<q && !Character.isLetterOrDigit(s.charAt(q))) q--; if(Character.toLowerCase(s.charAt(p)) != Character.toLowerCase(s.charAt(q))){ return false; } p++; q--; } return true; } }
錯漏p、q的增減與判斷。
get