题目
类型:String
解题思路
根据题目要求,若单词的大写用法正确,则需要满足:
- 若第 1 个字母为大写,则其他字母必须均为大写或均为小写,即其他字母必须与第 2 个字母的大小写相同;
- 若第 1 个字母为小写,则其他字母必须均为小写。
根据以上规则,可以整理得到以下更简单的判断规则:
- 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同;
- 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写。
代码
class Solution {
public boolean detectCapitalUse(String word) {
// 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写
if (word.length() >= 2 && Character.isLowerCase(word.charAt(0)) && Character.isUpperCase(word.charAt(1))) {
return false;
}
// 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同
for (int i = 2; i < word.length(); ++i) {
if (Character.isLowerCase(word.charAt(i)) ^ Character.isLowerCase(word.charAt(1))) {
return false;
}
}
return true;
}
}