↓快轉到主要內容
  1. LeetCode/

LeetCode 3931: Check Adjacent Digit Differences

·1 分鐘· ·
LeetCode Easy String
Wei Yi Chung
作者
Wei Yi Chung
Working at the contributing of open source, distributed systems, and data engineering.
目錄

基本資料
#

難易度: easy 第一次嘗試:2026-05-17

  • 提交紀錄:Accepted(一次通過)

解題思路
#

把字元轉成數字,相鄰兩個比較一次(String 模板四)。只要有一對差超過 2 就是 False。

我的解法
#

class Solution:
    def isAdjacentDiffAtMostTwo(self, s: str) -> bool:
        return all(abs(int(a) - int(b)) <= 2 for a, b in zip(s, s[1:]))

複雜度
#

時間 O(n),空間 O(n)(s[1:] 的複製)。

要特別避免的錯誤
#

  • 字元要先轉成數字再相減。

面試口說整理
#

我把字串跟它自己錯開一位配對,每一對相鄰數字的差都不超過 2 就回傳 True。時間 O(n)。

相關文章

LeetCode 3884: First Matching Character From Both Ends
·1 分鐘
LeetCode Easy Two-Pointers String
LeetCode 3884 解題筆記:從兩端往中間比,第一個相等的位置就是答案;長度是奇數時中間一定相等
LeetCode 3838: Weighted Word Mapping
·1 分鐘
LeetCode Easy Array String Simulation
LeetCode 3838 解題筆記:每個字的權重加總取 mod 26,再反向對應字母:0 -> z,也就是 chr(ord(‘z’) - r)
LeetCode 3823: Reverse Letters Then Special Characters in a String
·1 分鐘
LeetCode Easy Two-Pointers String
LeetCode 3823 解題筆記:兩次對撞指針,第一次只交換字母,第二次只交換特殊字元
LeetCode 2273: Find Resultant Array After Removing Anagrams
·1 分鐘
LeetCode Easy Hash-Table String Sorting
LeetCode 2273 解題筆記:一直刪掉跟前一個是異位詞的字,等於只保留跟前一個留下來的字不是異位詞的字;用排序後的字串比較
LeetCode 2697: Lexicographically Smallest Palindrome
·1 分鐘
LeetCode Easy Two-Pointers String Greedy
LeetCode 2697 解題筆記:對撞指針,兩端不同時都改成比較小的那個字元
LeetCode 3258: Count Substrings That Satisfy K-Constraint I
·1 分鐘
LeetCode Easy Sliding-Window String
LeetCode 3258 解題筆記:0 的個數 <= k 或 1 的個數 <= k;兩個都超過才不合法,縮左邊後以 right 結尾的合法子字串有 right - left + 1 個