LeetCode 520. 检测大写字母

目录结构

1.题目

2.题解


1.题目

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

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

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

示例:

输入: "USA"
输出: True


输入: "FlaG"
输出: False

注意: 输入是由大写和小写拉丁字母组成的非空单词。 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/detect-capital
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.题解

public class Solution520 {

    @Test
    public void test520() {
        System.out.println(detectCapitalUse("Alibaba"));
        System.out.println(detectCapitalUse("USER"));
        System.out.println(detectCapitalUse("China"));
        System.out.println(detectCapitalUse("HEllo"));
        System.out.println(detectCapitalUse("isA"));
    }

    public boolean detectCapitalUse(String word) {
        int len = word.length();
        if (len == 1) {
            return true;
        }
        int flag = 'a' <= word.charAt(0) && word.charAt(0) <= 'z' ? 1 : 2;
        for (int i = 1; i < len; i++) {
            if (flag == 1) {
                if ('A' <= word.charAt(i) && word.charAt(i) <= 'Z') {
                    return false;
                }
            } else {
                boolean flag1 = 'a' <= word.charAt(i) && word.charAt(i) <= 'z';
                if (i == 1) {
                    if (flag1) {
                        flag = 1;
                    }
                } else if (flag1) {
                    return false;
                }
            }
        }
        return true;
    }
}
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

你可能感兴趣的:(LeetCode)