520. 检测大写字母(Python)

题目

难度:★☆☆☆☆
类型:字符串

给定一个单词,你需要判断单词的大写使用是否正确。

我们定义,在以下情况时,单词的大写用法是正确的:

全部字母都是大写,比如"USA"。
单词中所有字母都不是大写,比如"leetcode"。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。
否则,我们定义这个单词没有正确使用大写字母。

示例

示例 1:
输入: "USA"
输出: True

示例 2:
输入: "FlaG"
输出: False

解答

大写字母合法需要输入字符串满足以下条件中的一个:

  1. 所有字母均为大写字母;

  2. 所有字母均为小写字母;

  3. 既有大写字母又有小写字母时,要求第一个字母为大写字母,其他均为小写字母。

可以通过以下方式编码实现:

class Solution:
    def detectCapitalUse(self, word: str) -> bool:
        
        is_upper = [c.isupper() for c in word]          # 大写字符判别列表
        is_lower = [c.islower() for c in word]          # 小写字符判别列表
        
        if all(is_upper) or all(is_lower):              # 如果所有字符都是大写或小写
            return True                         

        if any(is_upper):                               # 如果既有大写又有小写
            return is_upper[0] and all(is_lower[1:])    # 要求第一个大写其他都小写

这里需要补充一些python知识点:

  1. 大小写判别。字符串中只有一个字符时,具有".islower()"和".isupper()"方法,可以实现对该字符是否为小写字符或大写字符进行判断,我们这里使用列表推导式对字符串中所有字符均进行判断;

  2. any和all。我们使用"any()"函数判断列表中是否有一个元素的布尔值为True,使用"all()"函数判断列表中是否所有元素的布尔值均为True。

如有疑问或建议,欢迎评论区留言~

你可能感兴趣的:(520. 检测大写字母(Python))