题目

类型:String
image.png

解题思路

根据题目要求,若单词的大写用法正确,则需要满足:

  • 若第 1 个字母为大写,则其他字母必须均为大写或均为小写,即其他字母必须与第 2 个字母的大小写相同;
  • 若第 1 个字母为小写,则其他字母必须均为小写。

根据以上规则,可以整理得到以下更简单的判断规则:

  • 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同;
  • 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写。

代码

  1. class Solution {
  2. public boolean detectCapitalUse(String word) {
  3. // 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写
  4. if (word.length() >= 2 && Character.isLowerCase(word.charAt(0)) && Character.isUpperCase(word.charAt(1))) {
  5. return false;
  6. }
  7. // 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同
  8. for (int i = 2; i < word.length(); ++i) {
  9. if (Character.isLowerCase(word.charAt(i)) ^ Character.isLowerCase(word.charAt(1))) {
  10. return false;
  11. }
  12. }
  13. return true;
  14. }
  15. }