Leetcode520. 檢測大寫字母

"""
520. 檢測大寫字母
給定一個單詞,你需要判斷單詞的大寫使用是否正確。
我們定義,在以下情況時,單詞的大寫用法是正確的:
全部字母都是大寫,比如"USA"。
單詞中所有字母都不是大寫,比如"leetcode"。
如果單詞不只含有一個字母,只有首字母大寫, 比如 "Google"。
否則,我們定義這個單詞沒有正確使用大寫字母。
示例 1:
輸入: "USA"
輸出: True
示例 2:
輸入: "FlaG"
輸出: False
注意: 輸入是由大寫和小寫拉丁字母組成的非空單詞。

"""


# 方法一:用built-in函數
class Solution:
    def detectCapitalUse(self, word: str) -> bool:
        # 用built-in函數
        return word == word.upper() or word == word.lower() or word == word.capitalize()


# 執行用時 :36 ms, 在所有 Python3 提交中擊敗了87.43%的用戶
# 內存消耗 :13.5 MB, 在所有 Python3 提交中擊敗了33.33%的用戶


# 方法三:統計大寫字母個數,並分類處理
class Solution2:
    def detectCapitalUse(self, word: str) -> bool:
        import string
        capital__num = 0
        for i in word:
            if i in string.ascii_uppercase:
                capital__num += 1
        if capital__num == 0 or capital__num == len(word):
            return True
        elif capital__num == 1 and word[0] in string.ascii_uppercase:
            return True
        else:
            return False


s = Solution()
for str in ["USA", "SSa", "abc", "aBC", "", "Abc"]:
    print(s.detectCapitalUse(str))

# 執行用時 :44 ms, 在所有 Python3 提交中擊敗了48.11%的用戶
# 內存消耗 :13.7 MB, 在所有 Python3 提交中擊敗了33.33%的用戶

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章