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