520. Detect Capital【easy】
2021-05-12 07:28
标签:googl lag word false other only add cap ctc 520. Detect Capital【easy】 Given a word, you need to judge whether the usage of capitals in it is right or not. We define the usage of capitals in a word to be right when one of the following cases holds: Otherwise, we define that this word doesn‘t use capitals in a right way. Example 1: Example 2: Note: The input will be a non-empty word consisting of uppercase and lowercase latin letters. 解法一: 解法二: 参考@zhengchaojie 的代码。 From 1~size-1,if we meet with a-z,we add 1,else we add 2.Then we can get the result that if the second to last letter is all lowercase or all upcase. 解法三: 参考@ai977313677 的代码。 解法四: 参考@lzl124631x 的代码。 520. Detect Capital【easy】 标签:googl lag word false other only add cap ctc 原文地址:http://www.cnblogs.com/abc-begin/p/7582018.html
Input: "USA"
Output: True
Input: "FlaG"
Output: False
1 class Solution {
2 public:
3 bool detectCapitalUse(string word) {
4 if (word.length() 1) {
5 return true;
6 }
7
8 bool flag = false;
9 for (int i = 1; i i) {
10 //以小写字母开头,则后面都必须为小写
11 if (word[0] >= ‘a‘ && word[0] ‘z‘) {
12 if (word[i] ‘a‘ || word[i] > ‘z‘) {
13 return false;
14 }
15 }
16 //以大写字母开头,下面分类讨论
17 else if (word[0] >= ‘A‘ && word[0] ‘Z‘) {
18 if (i == 1 && word[i] >= ‘a‘ && word[i] ‘z‘) {
19 flag = true;
20 continue;
21 }
22 //说明后面都必须为小写
23 if (flag) {
24 if (word[i] >= ‘A‘ && word[i] ‘Z‘) {
25 return false;
26 }
27 }
28 //说明后面都必须为大写
29 else {
30 if (word[i] >= ‘a‘ && word[i] ‘z‘) {
31 return false;
32 }
33 }
34 }
35 }
36
37 return true;
38 }
39 };
1 class Solution {
2 public:
3 bool detectCapitalUse(string word) {
4 int size=word.size(),count=0;
5 if(size1)
6 return true;
7 for (int i = 1; i ){
8 if(word[i]>=‘a‘&&word[i]‘z‘)
9 count+=1;
10 else
11 count+=2;
12 }
13 if(count==size-1)
14 return true;
15 else if(count==2*(size-1))
16 return word[0]>=‘A‘&&word[0]‘Z‘;
17 else
18 return false;
19 }
20 };
1 bool detectCapitalUse(string word) {
2 const char *c = word.c_str();
3 if (word.size() 1) return true;
4 if (*c ‘z‘ && *c >= ‘a‘) {
5 c = c + 1;
6 while (*c) {
7 if (*c ‘Z‘ && *c >= ‘A‘) return false;
8 c = c + 1;
9 }
10 } else {
11 c = c + 1;
12 if (*c ‘Z‘ && *c >= ‘A‘) {
13 c = c + 1;
14 while (*c) {
15 if (*c ‘z‘ && *c >= ‘a‘) return false;
16 c = c + 1;
17 }
18 } else {
19 c = c + 1;
20 while (*c) {
21 if (*c ‘Z‘ && *c >= ‘A‘) return false;
22 c = c + 1;
23 }
24 }
25 }
26
27 return true;
28 }
1 class Solution {
2 public:
3 bool detectCapitalUse(string word) {
4 int cnt = 0;
5 for (char c : word) if (isupper(c)) ++cnt;
6 return !cnt || cnt == word.size() || cnt == 1 && isupper(word[0]);
7 }
8 };
文章标题:520. Detect Capital【easy】
文章链接:http://soscw.com/index.php/essay/84587.html