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 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.
class Solution {
public boolean detectCapitalUse(String word) {
if (word.length() <= 1) {
return true;
}
boolean firstCharFlag = word.charAt(0) < 97;
boolean secondCharFlag = word.charAt(1) < 97;
if (!firstCharFlag && secondCharFlag) {
return false;
}
for (int i = 2; i < word.length(); i++) {
boolean charFlag = word.charAt(i) < 97;
//存在第二个字符和后面的字符不相同返回都为false
if (!secondCharFlag && charFlag) {
return false;
}
if (secondCharFlag && !charFlag) {
return false;
}
}
return true;
}
}
这种方法判断比较简单,而且时间复杂度可以接受,也达到了题目的要求;
很明显这个题目时间复杂度为:0(n)。