125. Valid Palindrome - Easy

前往題目

之前寫的Medium文章

思路

  1. 2 pointers
  2. 遇到不是letterdigit的直接移動指針然後進到下一個循環
  3. 遇到是的話直接判斷是否相同,注意letter的話要轉成lowercaseuppercase

Code

class Solution {
    public boolean isPalindrome(String s) {
        int l = 0, r = s.length() - 1;

        while (l < r) {
            char left = s.charAt(l);
            char right = s.charAt(r);
            
            // Check
            if (!Character.isLetterOrDigit(left)) {
                ++l;
            } else if (!Character.isLetterOrDigit(right)) {
                --r;
            } else { // Is alphanumeric
                if (Character.toLowerCase(left) != Character.toLowerCase(right)) {
                    return false;
                }
                ++l;
                --r;
            }
        }

        return true;
    }

    private boolean isAlphabet(char c) {
        return ('a' <= c && c <= 'z') ||
                ('A' <= c && c <= 'Z'); 
    }
}

125. Valid Palindrome - Easy
https://f88083.github.io/2024/01/30/125-Valid-Palindrome-Easy/
作者
Simon Lai
發布於
2024年1月30日
許可協議