151
社区成员
发帖
与我相关
我的任务
分享
一、题目核心要求
给定一个由英文字母组成的字符串 word ,需要判断它的大写用法是否符合三种合法规则,符合则返回 true ,否则返回 false :
1. 全大写:字符串中所有字母都是大写(比如 "USA" )
2. 全小写:字符串中所有字母都是小写(比如 "leetcode" )
3. 首字母大写、其余小写:仅第一个字母是大写,剩下的所有字母都是小写(比如 "Google" )
二、解题核心思路
我们可以通过统计大写字母的数量,结合字符串总长度,分情况验证是否符合规则:
1. 先遍历整个字符串,统计其中大写字母的总个数,同时得到字符串的总长度。
2. 分4种情况判断:- 若大写字母数量为0:说明所有字母都是小写,符合第2条规则,判定为正确。
- 若大写字母数量等于字符串总长度:说明所有字母都是大写,符合第1条规则,判定为正确。
- 若大写字母数量为1,且第一个字母是大写:说明仅首字母大写、其余全小写,符合第3条规则,判定为正确。
- 其他所有情况:都不满足合法规则,判定为错误。
三、典型用例验证
输入字符串 大写字母数量 字符串总长度 判定结果 原因
"USA" 3 3 true 全大写,符合规则1
"FlaG" 2 4 false 不满足任何合法规则
"Google" 1 6 true 仅首字母大写,符合规则3
"leetcode" 0 8 true 全小写,符合规则2
"gOogle" 2 6 false 不满足任何合法规则
四、逻辑补充说明
- 这个思路覆盖了所有合法场景,同时排除了所有非法场景,逻辑严谨无遗漏。
- 仅需要遍历字符串一次,时间效率高,不需要额外的复杂空间存储。
- 对于边界情况(比如长度为1的字符串),该逻辑同样适用:单字母无论大写还是小写,都符合规则,会返回 true 。