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

LeetCode 434: Number of Segments in a String

·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

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

解題思路
#

segment 是連續的非空白字元。split() 不帶參數時會把連續空白當成一個分隔、去掉頭尾空白,空字串會得到空 list,所以 len(s.split()) 就是答案(String 模板六)。

我的解法
#

class Solution:
    def countSegments(self, s: str) -> int:
        return len(s.split())

複雜度
#

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

要特別避免的錯誤
#

  • split(" ") 會留下空字串,數量會多。

面試口說整理
#

我用不帶參數的 split 切開字串,它會忽略多餘的空白,切出來的數量就是答案;如果要 O(1) 空間,可以數「自己不是空白、前一個是空白或在開頭」的位置。

相關文章

LeetCode 345: Reverse Vowels of a String
·1 分鐘
LeetCode Easy Two-Pointers String
LeetCode 345 解題筆記:跟 LC 917 一樣的左右指針,只是條件換成「是不是母音」(大小寫都要算)
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) 去掉頭尾字元之後的字串裡
LeetCode 482: License Key Formatting
·1 分鐘
LeetCode Easy String
LeetCode 482 解題筆記:先去掉所有 - 並轉大寫,再從尾巴每 k 個切一段,最前面那段可以比較短