题目
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如
"USA"。 - 单词中所有字母都不是大写,比如
"leetcode"。 - 如果单词不只含有一个字母,只有首字母大写, 比如
"Google"。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
思路
分条件讨论.
注意如果 word 的长度为 1 则返回 true;
代码
class Solution {
public boolean detectCapitalUse(String word) {
char[] chars = word.toCharArray();
int n = chars.length;
char first = chars[0];
if (n == 1) {
return true;
}
boolean lowerCase = Character.isLowerCase(first);
//首字母是小写情况
if (lowerCase) {
for (char c : chars) {
if (Character.isUpperCase(c)) return false;
}
return true;
}
//如果不是小写情况
char second = chars[1];
boolean secondType = Character.isLowerCase(second);
if (secondType) {
for (int i = 1; i < n; i++) {
if (Character.isUpperCase(chars[i])) return false;
}
return true;
}
for (char c : chars) {
if (Character.isLowerCase(c)) return false;
}
return true;
}
}
题解
三叶姐题解: leetcode.cn/problems/de…
看完题解之后感觉自己好蠢......