1. 题号和题目名称
- 检测大写字母
2. 题目叙述
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如 “USA”。
- 单词中所有字母都不是大写,比如 “leetcode”。
- 如果单词不只含有一个字母,只有首字母大写,比如 “Google”。
给你一个字符串 word
,判断其大写使用是否正确。
示例 1:
输入:word = "USA"
输出:true
示例 2:
输入:word = "FlaG"
输出:false
示例 3:
输入:word = "leetcode"
输出:true
3. 模式识别
本题需要判断字符串的大写使用是否符合三种规则之一,属于字符串处理中的模式匹配问题。可以通过统计大写字母数量并结合首字母的大小写情况来判断。
4. 考点分析
- 字符串遍历:需要遍历字符串中的每个字符,判断其大小写状态。
- 条件判断:根据大写字母的数量和首字母的大小写情况,分情况讨论。
- 字符处理:使用字符处理函数(如
isupper
)判断字符的大小写状态。
5. 所有解法
- 暴力解法:遍历字符串两次,第一次统计大写字母数量,第二次判断首字母大小写并结合规则判断。
- 一次遍历解法(最优):在一次遍历中同时统计大写字母数量和判断首字母大小写,最后根据规则判断。
6. 最优解法(一次遍历)的 C 语言代码
#<