给定一个单词,你需要判断其中大写字母的使用是否正确。
当下列情况之一成立时,我们将单词中大写字母的用法定义为正确:
这个单词中的所有字母都是大写字母,如“USA”。
这个单词中的所有字母都不是大写字母,如“lintcode”。
如果它有多个字母,例如“Google”,那么这个单词中的第一个字母就是大写字母。
否则,我们定义该单词没有以正确的方式使用大写字母。
样例 1:
输入: "USA"
输出: True
样例 2:
输入: "FlaG"
输出: False
思路:判断是以上三种情况的哪一种,再将每一种特殊处理即可
class Solution {
public:
/**
* @param word: a string
* @return: return a boolean
*/
bool detectCapitalUse(string &word) {
// write your code here
int len=word.size();
int judge=0;
if(len<3) return true;
else{
if(isupper(word[0])&&isupper(word[1])) judge=1;
else if(isupper(word[0])&&islower(word[1]))judge=2;
else if(islower(word[0])&&islower(word[1]))judge=3;
else return false;
for (int i = 3; i < len; i++) {
/* code */
switch(judge)
{
case 1:{if(islower(word[i])) {return false;break;}}
case 2:{if(isupper(word[i])){return false;break;}}
case 3: {if(isupper(word[i])){return false;break;}}
}
}
return true;
}
}
};