leetcode| 125. 驗證迴文串

給定一個字符串,驗證它是不是迴文串,只考慮字母和數字字符,能夠忽略字母的大小寫。

說明:本題中,咱們將空字符串定義爲有效的迴文串。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

連接:https://leetcode-cn.com/problems/valid-palindromeit

相關文章
相關標籤/搜索