2021-11-13检测大写字母

题目描述:

我们定义,在以下情况时,单词的大写用法是正确的:

全部字母都是大写,比如 "USA" 。
单词中所有字母都不是大写,比如 "leetcode" 。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。

解法:

如果字符只有一个字符,返回 true。

下面的讨论基于字符串中至少又两个字符,分类讨论:

  1. 如果第一个字符大写,第二个字符大写,则后续所有字符需要大写。
  2. 如果第一个字符大写,第二个字符小写,则后续所有字符需要小写。
  3. 如果第一个字符小写,第二个字符大写,直接返回 false。
  4. 如果第一个字符小写,第二个字符小写,则后续所有字符需要小写。

据此可以得到代码:

bool detectCapitalUse(char * word){if(word[1] == '\0')return 1;char first_cap = word[0] <= 'Z';char second_cap = word[1] <= 'Z';char i = 2;// 从第三个字符开始遍历if(first_cap && second_cap){// 全大写while(word[i] != '\0'){if(word[i] > 'Z')return 0;i++;}}else if(!first_cap && second_cap){// return 0;}else{// 首字母大写 或 全小写while(word[i] != '\0'){if(word[i] < 'a')return 0;i++;}}return 1;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部