520. 检测大写字母

转载自Leet Code

题目描述

给定一个单词,你需要判断单词的大写使用是否正确。 我们定义,在以下情况时,单词的大写用法是正确的:

  • 全部字母都是大写,比如"USA"
  • 单词中所有字母都不是大写,比如"leetcode"
  • 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"

否则,我们定义这个单词没有正确使用大写字母。

示例 1: >输入: "USA" >输出: True

示例 2: >输入: "FlaG" >输出: False

提示:

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

我的代码

\(T(N) = O(N)\), \(S(N) = O(1)\)

{.line-numbers}
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
class MySolution520 
{
public boolean detectCapitalUse(String word)
{
if (word==null||word.length()<=1) return true;

boolean firstIsUpper = Character.isUpperCase(word.charAt(0));
boolean secondIsUpper = Character.isUpperCase(word.charAt(1));
if (!firstIsUpper&&secondIsUpper) return false;

for (int i=2; i<word.length(); i++)
{
if (firstIsUpper&&secondIsUpper)
{
if (!Character.isUpperCase(word.charAt(i)))
return false;
}
else if ((!firstIsUpper&&!secondIsUpper)||(firstIsUpper&&!secondIsUpper))
{
if (Character.isUpperCase(word.charAt(i)))
return false;
}
}
return true;
}
}