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

LeetCode 520: Detect Capital

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

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

解題思路
#

直接檢查三種合法的情況(String 模板四):word.isupper()、word.islower()、word[0].isupper() and word[1:].islower()。單一字元時 word[1:] 是空字串、"".islower() 是 False,不過單一字母已經被前兩種涵蓋了;第三種也可以寫成 word.istitle()(只有一個單字時等價)。

我的解法
#

class Solution:
    def detectCapitalUse(self, word: str) -> bool:
        return word.isupper() or word.islower() or word.istitle()

複雜度
#

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

要特別避免的錯誤
#

  • 第三種情況是「第一個大寫、其他全部小寫」。

面試口說整理
#

合法的只有全大寫、全小寫、首字母大寫三種,我直接用 isupper、islower、istitle 檢查。時間 O(n)。

相關文章

LeetCode 500: Keyboard Row
·1 分鐘
LeetCode Easy Array Hash-Table String
LeetCode 500 解題筆記:鍵盤的三列各做成集合,單字轉小寫後的字元集合是某一列的子集就保留
LeetCode 521: Longest Uncommon Subsequence I
·1 分鐘
LeetCode Easy String
LeetCode 521 解題筆記:兩個字串相同時答案是 -1,否則比較長的那個整個就是答案
LeetCode 434: Number of Segments in a String
·1 分鐘
LeetCode Easy String
LeetCode 434 解題筆記:split() 不帶參數會忽略多餘的空白,切出來的數量就是答案
LeetCode 345: Reverse Vowels of a String
·1 分鐘
LeetCode Easy Two-Pointers String
LeetCode 345 解題筆記:跟 LC 917 一樣的左右指針,只是條件換成「是不是母音」(大小寫都要算)
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 個時全部反轉,切片會自動處理