520. 检测大写字母

题目

给定一个单词,你需要判断单词的大写使用是否正确。

我们定义,在以下情况时,单词的大写用法是正确的:

  1. 全部字母都是大写,比如”USA”。
  2. 单词中所有字母都不是大写,比如”leetcode”。
  3. 如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。
    否则,我们定义这个单词没有正确使用大写字母。

给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false

示例1:

1
2
输入: "USA"
输出: True

示例2:

1
2
输入: "FlaG"
输出: False

提示:

  • 1 <= word.length <= 100
  • word 由小写和大写英文字母组成

解法

解法一:

根据条件按个计算即可。

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
public boolean detectCapitalUse(String word) {
String upWord = word.toUpperCase();
if (upWord.equals(word)) {
return true;
}

char c = word.charAt(0);
boolean flag = false;
if ('A' <= c && 'Z' >= c) {
flag = true;
}

int low = 0;
int up = 0;
for (int i = 1;i < word.length();i++) {
char cc = word.charAt(i);
if ('a' <= cc && 'z' >= cc) {
low++;
} else if ('A' <= cc && 'Z' >= cc) {
up++;
}
}

if (flag && (low == word.length() - 1 || 0 == low)) {
return true;
} else if (flag && up == word.length() - 1) {
return true;
} else if (!flag && low == word.length() - 1) {
return true;
}
return false;
}
}
0%