题目
难度:★☆☆☆☆
类型:字符串
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如"USA"。
单词中所有字母都不是大写,比如"leetcode"。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。
否则,我们定义这个单词没有正确使用大写字母。
示例
示例 1:
输入: "USA"
输出: True
示例 2:
输入: "FlaG"
输出: False
解答
大写字母合法需要输入字符串满足以下条件中的一个:
所有字母均为大写字母;
所有字母均为小写字母;
既有大写字母又有小写字母时,要求第一个字母为大写字母,其他均为小写字母。
可以通过以下方式编码实现:
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知识点:
大小写判别。字符串中只有一个字符时,具有".islower()"和".isupper()"方法,可以实现对该字符是否为小写字符或大写字符进行判断,我们这里使用列表推导式对字符串中所有字符均进行判断;
any和all。我们使用"any()"函数判断列表中是否有一个元素的布尔值为True,使用"all()"函数判断列表中是否所有元素的布尔值均为True。
如有疑问或建议,欢迎评论区留言~