Question:
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".
思路:当以下情况之一成立时,我们将一个单词中的大写字母的使用定义为正确:
这个词中的所有字母都是大写,如“USA”。
这个词中的所有字母都不是大写字母,例如“leetcode”。
只有这个词中的第一个字母是大写,如果它有多个字母,如“Google”。
否则,我们定义这个词不以正确的方式使用大写字母。
Answer:
class Solution {
public:
bool detectCapitalUse(string word) {
int i=0;
if(word.length()<=1)
return true;
if (word[0]>='A'&&word[0]<='Z')
/*首字母如果是大写,第二个字母是大写,后边必须全是大写,第二个字母是小写,后边必须全小写*/
{
if(word[1]>='A'&&word[1]<='Z')
{
for(i=2;i<word.length();i++)
{
if (word[i]>='a'&&word[i]<='z')
return false;
}
}
if(word[1]>='a'&&word[1]<='z')
{
for(i=2;i<word.length();i++)
{
if (word[i]>='A'&&word[i]<='Z')
return false;
}
}
}
else if (word[0]>='a'&&word[0]<='z')
/*首字母如果是小写,后边字母必须全小写*/
{
for(i=1;i<word.length();i++)
{
if(word[i]>='A'&&word[i]<='Z')
return false;
}
}
return true;
}
};
run code results:
Your input
"USA"
Your answer
true
Expected answer
true
Your input
"FlaG"
Your answer
false
Expected answer
false