2021-11-13 LeetCode每日一题 520. 检测大写字母
问题描述:
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如 "USA" 。
单词中所有字母都不是大写,比如 "leetcode" 。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
示例 1:
输入:word = "USA"
输出:true
示例 2:
输入:word = "FlaG"
输出:false
提示:
1 <= word.length <= 100
word 由小写和大写英文字母组成
解决方案:
class Solution {
public:bool detectCapitalUse(string word) {int count1 = 0;int count2 = 0;for(int i=1;i25)count1 += 1;if(word[i]-'A'<=25)count2 += 1;}else{if(word[i]-'A'<= 25) return false;if(i==word.size()-1) return true;}}if(count1 == word.size()-1 || count2 == word.size()-1)return true;else return false;}
};
官方题解
class Solution {
public:bool detectCapitalUse(string word) {// 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写if (word.size() >= 2 && islower(word[0]) && isupper(word[1])) {return false;}// 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同for (int i = 2; i < word.size(); ++i) {if (islower(word[i]) ^ islower(word[1])) {return false;}}return true;}
};
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
