1. 问题描述:
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: "USA"
输出: True
示例 2:
输入: "FlaG"
输出: False
注意: 输入是由大写和小写拉丁字母组成的非空单词。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/detect-capital
2. 思路分析:
分析题目可以知道我们模拟即可,计算出字符串中大写字母的个数,分情况讨论即可。
3. 代码如下:
class Solution:
def check(self, c: str):
if "A" <= c <= "Z": return 1
else: return 0
def detectCapitalUse(self, word: str) -> bool:
count = 0
for c in word:
count += self.check(c)
return count == 0 or count == len(word) or (count == 1 and True if self.check(word[0]) else False)