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”.
Otherwise, we define that this word doesn’t use capitals in a right way.
Example:
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.
思路:
首先,可以遍历整个字符串,定义三条判断规则,通过三条判断规则来判定是否符合条件:第一,如果第一个字母小写,后面都是小写则符合条件,否则不符合条件;第二,如果第一个字母大写,这里分两种情况,如果第二个字母为大写,那么其后面的字母都应该是大写才可符合条件;如果第二个字母为小写,后面的字母就应该是小写才符合条件,否则其余的都不符合条件。
判断大小写可以根据ASCII码值来进行,’A’的ASCII码值为97,’a’的ASCII码值为65,不过以’A’为分界即可。
下面是使用C++的实现过程:
class Solution {
public:
bool detectCapitalUse(string word) {
if(word[0]>=97){
for(int i=1; i<word.length(); i++){
if(word[i]>=97){
continue;
}else return false;
}
}else{
if(word[1]>=97){
for(int i=2; i<word.length(); i++){
if(word[i]>=97){
continue;
}else return false;
}
}else{
for(int i=2; i<word.length(); i++){
if(word[i]<97){
continue;
}else return false;
}
}
}
return true;
}
};