前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 520:Detect Capital(检测大写字母)

LeetCode 520:Detect Capital(检测大写字母)

作者头像
后台技术汇
发布2022-05-30 09:32:10
3030
发布2022-05-30 09:32:10
举报
文章被收录于专栏:后台技术汇

Together for a Shared future

一起向未来

今天带来的题目是《520. 检测大写字母》。

题目描述

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

全部字母都是大写,比如 "USA" 。

单词中所有字母都不是大写,比如 "leetcode" 。

如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。

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

示例 1 :

代码语言:javascript
复制
输入:word = "USA"
输出:true

示例 2:

代码语言:javascript
复制
输入:word = "FlaG"
输出:false

提示:

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

遍历法

代码语言:javascript
复制
    /**
     * 全局遍历法
     * 执行用时:1 ms , 在所有 Java 提交中击败了 83.20% 的用户*
     * 内存消耗:39.6 MB , 在所有 Java 提交中击败了 14.23% 的用户
     * @param word
     * @return
     */
    public static boolean detectCapitalUse(String word) {
        int upperCount = 0;
        int lowerCount = 0;

        for (int i = 0; i < word.length(); i++) {
            if (65 <= word.charAt(i) && word.charAt(i) <= 90) {
                upperCount++;
            } else {
                lowerCount++;
            }
        }

        return ((65 <= word.charAt(0) && word.charAt(0) <= 90) && upperCount == 1 && lowerCount == (word.length() - 1))
                || (upperCount == word.length())
                || (lowerCount == word.length())
                ;
    }
代码语言:javascript
复制
    public static boolean detectCapitalUseV2(String word) {
        // 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写
        if (word.length() >= 2 && Character.isLowerCase(word.charAt(0)) && Character.isUpperCase(word.charAt(1))) {
            return false;
        }

        // 无论第 1 个字母是否大写,其他字母必须与第 2 个字母的大小写相同
        for (int i = 2; i < word.length(); ++i) {
            if (Character.isLowerCase(word.charAt(i)) ^ Character.isLowerCase(word.charAt(1))) {
                return false;
            }
        }
        return true;
    }

复杂度分析

1)时间复杂度:O(n),其中 n 为字符串的长度。我们需要遍历字符串中的每个字符。

2)空间复杂度:O(1)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后台技术汇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档