https://leetcode.com/problems/detect-capital/?tab=Description
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:
- All letters in this word are capitals, like "USA".
- All letters in this word are not capitals, like "leetcode".
- Only the first letter in this word is capital if it has more than one letter, like "Google".
Example 1:
Input: "USA" Output: True
Example 2:
Input: "FlaG" Output: False
Note: The input will be a non-empty word consisting of uppercase and lowercase latin letters.
bool bIsUpper(char ch) {
return (ch >= 'A' && ch <= 'Z');
}
bool detectCapitalUse(char* word) {
int len = strlen(word);
int firstIsUpper = false;
int i;
if(len <= 1) return true;
firstIsUpper = bIsUpper(word[0]);
for(i = 1; i < len; i++) {
if(firstIsUpper) {
if(i != 1 && (bIsUpper(word[i]) != bIsUpper(word[i-1]))) break;
}
else {
if(bIsUpper(word[i])) break;
}
}
return (i == len)?true:false;
}