comments | difficulty | edit_url | tags | |
---|---|---|---|---|
true |
Easy |
|
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, like
"Google"
.
Given a string word
, return true
if the usage of capitals in it is right.
Example 1:
Input: word = "USA" Output: true
Example 2:
Input: word = "FlaG" Output: false
Constraints:
1 <= word.length <= 100
word
consists of lowercase and uppercase English letters.
We can count the number of uppercase letters in the string, and then determine whether it meets the requirements of the problem based on the number of uppercase letters.
- If the number of uppercase letters is 0 or equal to the length of the string, then return
true
. - If the number of uppercase letters is 1 and the first letter is an uppercase letter, then return
true
. - Otherwise, return
false
.
The time complexity is word
. The space complexity is
class Solution:
def detectCapitalUse(self, word: str) -> bool:
cnt = sum(c.isupper() for c in word)
return cnt == 0 or cnt == len(word) or (cnt == 1 and word[0].isupper())
class Solution {
public boolean detectCapitalUse(String word) {
int cnt = 0;
for (char c : word.toCharArray()) {
if (Character.isUpperCase(c)) {
++cnt;
}
}
return cnt == 0 || cnt == word.length()
|| (cnt == 1 && Character.isUpperCase(word.charAt(0)));
}
}
class Solution {
public:
bool detectCapitalUse(string word) {
int cnt = count_if(word.begin(), word.end(), [](char c) { return isupper(c); });
return cnt == 0 || cnt == word.length() || (cnt == 1 && isupper(word[0]));
}
};
func detectCapitalUse(word string) bool {
cnt := 0
for _, c := range word {
if unicode.IsUpper(c) {
cnt++
}
}
return cnt == 0 || cnt == len(word) || (cnt == 1 && unicode.IsUpper(rune(word[0])))
}
function detectCapitalUse(word: string): boolean {
const cnt = word.split('').reduce((acc, c) => acc + (c === c.toUpperCase() ? 1 : 0), 0);
return cnt === 0 || cnt === word.length || (cnt === 1 && word[0] === word[0].toUpperCase());
}