这道题使用一个count变量来统计大写字母出现的次数。当且仅当下列三种情况出现时才是正确的:
- count == 0: 全是小写字母
- count == n: 全是大写字母
- count == 1 && word.charAt(0) <= 'Z': 只有开头是大写字母
值得注意的是大写字母的ASCII码小于小写字母的ASCII码,代码如下:
class Solution {
public boolean detectCapitalUse(String word) {
int count = 0, n = word.length();
for(char c: word.toCharArray()){
// Uppercase letters appear before lowercase letters in ASCII
if(c <= 'Z'){
count++;
}
}
return (count == 0) || (count == n) || (count == 1 && word.charAt(0) <= 'Z');
}
}