检测大写字母
类型:
字符串遍历,简单,计数。
题目描述:
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如 “USA” 。
单词中所有字母都不是大写,比如 “leetcode” 。
如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
示例1️⃣:
输入:word = "USA"
输出:true
示例2️⃣:
输入:word = "FlaG"
输出:false
提示:
1 <= word.length <= 100
word 由小写和大写英文字母组成
分析:
判断条件只有寥寥的三个,且特征明显,可以通过计大写字母的个数判断。
代码AC:
class Solution {
public:
bool detectCapitalUse(string word) {
int cntA=0;
bool jd=0;
if(isupper(word[0]))jd=1; //判断第一个字母是否为大写
for(int i:word) if(isupper(i))cntA++;
return (cntA==word.size())||(cntA==0)||((cntA==1)&&jd);
} //分三种情况返回真,全为大写cntA==word.size()
}; //全为小写:cntA==0
//第一个字母为大写,其余为小写。(cntA==1)&&jd
AC:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/72363b586bdb21f57c851069bd320873.png#pic_center)
补充:
函数原型:bool isupper(char ch),若为ch大写字符则返回真,否则返回假