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

LeetCode 1869: Longer Contiguous Segments of Ones than Zeros

·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-24

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

解題思路
#

用 '0' 切開,剩下的每一段都是連續的 1,最長的一段就是最長連續 1;用 '1' 切開同理。比較兩者,1 的要嚴格比較長。

我的嘗試
#

前兩版手動數連續段落,但判斷寫成 i == 1,字串的字元永遠不等於整數 1,所有字元都被當成 0:"1" 回傳 False。第一版另外也沒有在迴圈結束後更新最後一段。最後改用 split 一行就 AC 了。

正確解法
#

class Solution:
    def checkZeroOnes(self, s: str) -> bool:
        return max(map(len, s.split("0"))) > max(map(len, s.split("1")))

複雜度
#

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

要特別避免的錯誤
#

  • 字串的字元是 '1',不是整數 1。
  • 自己數連續段落時,最後一段要在迴圈結束後再更新一次。

面試口說整理
#

我用 0 切開字串,最長的一段就是最長的連續 1;用 1 切開就是最長的連續 0,比較兩者即可。時間 O(n)。

相關文章

LeetCode 1446: Consecutive Characters
·1 分鐘
LeetCode Easy String
LeetCode 1446 解題筆記:掃一次記錄目前連續相同字元的長度,遇到不同就重設成 1
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) 去掉頭尾字元之後的字串裡
LeetCode 482: License Key Formatting
·1 分鐘
LeetCode Easy String
LeetCode 482 解題筆記:先去掉所有 - 並轉大寫,再從尾巴每 k 個切一段,最前面那段可以比較短
LeetCode 290: Word Pattern
·1 分鐘
LeetCode Easy Hash-Table String
LeetCode 290 解題筆記:pattern 的字元和單字要一對一對應,用兩個方向的 dict 或比較 set 大小
LeetCode 344: Reverse String
·1 分鐘
LeetCode Easy Two-Pointers String
LeetCode 344 解題筆記:左右指針交換後往中間走,原地反轉