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

LeetCode 551: Student Attendance Record I

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

基本資料
#

難易度: easy 第一次嘗試:2022-08-27

  • 提交紀錄:Wrong Answer → Accepted ×4

解題思路
#

兩個條件:'A' 的總數少於 2,而且沒有連續三個 'L',也就是 "LLL" not in s(String 模板二)。

我的嘗試
#

第一版寫成 for i in s: if i[:3] == "LLL",i 只是一個字元,i[:3] 永遠不會是 "LLL":"LLL" 回傳 True。改成 s[i:i + 3] 就 AC 了。

正確解法
#

class Solution:
    def checkRecord(self, s: str) -> bool:
        return s.count("A") < 2 and "LLL" not in s

複雜度
#

時間 O(n),空間 O(1)。

要特別避免的錯誤
#

  • 檢查連續的 L 要看子字串,逐字元迴圈的變數只是單一字元。

面試口說整理
#

我檢查 A 的數量少於 2,而且字串裡沒有 LLL 這個子字串,時間 O(n)。

相關文章

LeetCode 504: Base 7
·1 分鐘
LeetCode Easy Math String
LeetCode 504 解題筆記:對絕對值不斷取 % 7 和 // 7,最後加上負號並反轉;0 要特別處理
LeetCode 541: Reverse String II
·1 分鐘
LeetCode Easy Two-Pointers String
LeetCode 541 解題筆記:每 2k 個為一段,反轉每段的前 k 個;最後一段不足 k 個時全部反轉,切片會自動處理
LeetCode 1446: Consecutive Characters
·1 分鐘
LeetCode Easy String
LeetCode 1446 解題筆記:掃一次記錄目前連續相同字元的長度,遇到不同就重設成 1
LeetCode 1869: Longer Contiguous Segments of Ones than Zeros
·1 分鐘
LeetCode Easy String
LeetCode 1869 解題筆記:分別找出最長的連續 1 和最長的連續 0,比較大小;用 split 一行就能做
LeetCode 415: Add Strings
·1 分鐘
LeetCode Easy Math String Simulation
LeetCode 415 解題筆記:兩個指標從尾巴往前逐位相加,記錄進位,迴圈結束後還有進位要補上
LeetCode 459: Repeated Substring Pattern
·1 分鐘
LeetCode Easy String String-Matching Z-Algorithm Knuth-Morris-Pratt-Algorithm
LeetCode 459 解題筆記:s 由某個子字串重複組成,等價於 s 出現在 (s + s) 去掉頭尾字元之後的字串裡