【Leetcode】520. 检测大写字母

文章目录

  • 题目
  • 思路
  • 代码
  • 复杂度分析
    • 时间复杂度
    • 空间复杂度
  • 结果
  • 总结

题目

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

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

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

示例 1:

输入:word = “USA”
输出:true

示例 2:

输入:word = “FlaG”
输出:false

提示:

  • 1 ≤ w o r d . l e n g t h ≤ 100 1 \leq word.length \leq 100 1word.length100
  • w o r d word word 由小写和大写英文字母组成

思路

统计单词中大写字母的个数n

  • n = = w o r d . s i z e ( ) n == word.size() n==word.size() 说明全为大写
  • n = = 1 n==1 n==1 && w o r d [ 0 ] ≤ ′ Z ′ word[0] \leq 'Z' word[0]Z && w o r d [ 0 ] ≥ ′ A ′ word[0] \geq 'A' word[0]A 说明只有一个大写且为开头
  • n = = 0 n==0 n==0说明单词全小写 除上述情况返回 t r u e true true外,其余情况都不符合,返回 f a l s e false false

代码

class Solution {
public:bool detectCapitalUse(string word) {int n = word.size(), cnt = 0;for(auto& ch: word) {if(ch <= 'Z' && ch >= 'A') ++cnt;}return cnt == 0 || cnt == word.size() || cnt == 1 && word[0] <= 'Z' && word[0] >= 'A';}
};

复杂度分析

时间复杂度

  • 时间复杂度O(n),其中 n 是字符串 word 的长度。我们只需要遍历一次字符串即可。
    在这里插入图片描述

空间复杂度

  • 空间复杂度O(1),只需要常数级别的额外空间。
    在这里插入图片描述

结果

在这里插入图片描述

总结

本题是一个简单的字符串处理问题,关键在于理解题目要求的三种大写使用情况,并据此统计大写字母的数量,然后进行判断。通过一次遍历即可解决问题,时间效率较高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis入门——语法详解:基础使用、增删改查、起别名、解决问题、注释、动态查询,从入门到进阶

文章目录 1.基础使用1.添加依赖2.在resouces文件下新建xml文件db.properties3.在resouces文件下新建xml文件mybatis-config-xml4.创建一个MybatisUtils工具类5.创建xml文件XxxMapper.xml映射dao层接口6.添加日志5.测试 2.增删改查1.select2.delete3.update4.insert5.模糊查询6.…

同心创建 共践食安 | 赵梦澈荣获食品安全大使

“民族要复兴&#xff0c;乡村必振兴”&#xff0c;为深入贯彻落实国家乡村振兴战略&#xff0c;推进乡村全面振兴不断取得新成效&#xff0c;助力全国优质食品农产品的宣传推广、市场营销、品牌创建工作&#xff0c;由中国食品安全报社主办&#xff0c;商业发展中心、健康中国…

python数据分析与可视化一

公共部分 # 引入数据分析工具 Pandas import pandas as pd # 引入数据可视化工具 Matplotlib import matplotlib.pyplot as plt # 引入数据可视化工具 Seaborn (基于matplotlib) import seaborn as sns # 解决输出时的列名对齐问题 pd.set_option(display.unicode.east_…

Python多线程编程详解

Python多线程编程详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 多线程编程是利用计算机多核心和多线程处理器的优势&#xff0c;提高程序并发性能的重要…

如何申请免费SSL证书以消除访问网站显示连接不安全提醒

在当今互联网时代&#xff0c;网络安全已成为一个不可忽视的问题。当用户浏览一些网站时&#xff0c;有时会看到浏览器地址栏出现“不安全”的提示&#xff0c;这意味着该网站没有安装SSL证书&#xff0c;数据传输可能存在风险。那么&#xff0c;如何消除这种不安全提醒&#x…

2024年6月,Altair被Gartner魔力象限评为数据科学与机器学习平台领导者

Altair 因其愿景完整性和执行能力被评为领导者 2024 年 6 月 20 日&#xff0c;Altair&#xff08;纳斯达克股票代码&#xff1a;ALTR&#xff09;宣布&#xff0c;Altair RapidMiner 被 Gartner Magic Quadrant™&#xff08;魔力象限&#xff09;评为数据科学与机器学习平台领…

SpringBoot配置参数获取

1、使用Value注解 import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;Component public class MyBean {Value("${myapp.name}") private String appName;public void printAppName() {System.out.print…

幂等生产者和事务生产者

Kafka消息交付 Kafka消息交付可靠性保障以及精确处理一次语义的实现。 所谓的消息交付可靠性保障&#xff0c;是指Kafka对Producer和Consumer要处理的消息提供什么样的承诺。常见的承诺有以下三种&#xff1a; 最多一次&#xff08;atmost once&#xff09;&#xff1a;消息…

SpringBoot:SpringBoot 调用第三方接口的几种方式

一、前言 在项目中调用第三方接口时&#xff0c;确实需要根据项目的技术栈、架构规范以及具体的业务需求来选择最适合的调用方式。比如&#xff1a;RESTful API调用、Feign声明式HTTP客户端、Apache HttpClient等调用方式&#xff0c;每种方式都有其适用场景和优势。下面我们就…

仓库管理系统16--入库管理

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现。 1、创建物资入库用户控件 <UserControl x:Class"West.StoreMgr.View.InStoreView"xmlns"http://schema…

CAS自旋解析

CAS全称CompareAndSwap(比较并交换)&#xff0c;是cpu的指令&#xff0c;调用时不涉及上下文的切换。Java中属于乐观锁的一种&#xff0c;具体流程如下图&#xff1a; 具体的实现使用的是Unsafe类去调用native修饰的compareAndSwap方法&#xff0c;4个字段分别是对象实例&#…

PTA—C语言期末复习(判断题)

1. C语言程序是从源文件的第一条语句开始执行的 &#xff08;F&#xff09; 在 C 语言中&#xff0c;程序是从 main 函数开始执行的&#xff0c;而不是从源文件的第一条语句开始执行 2. 若变量定义为double x;&#xff0c;则x % 2是符合C语言语法的表达式 &#xff08;F&#…

通过nginx去除 api url前缀 并保持后面剩余的url不变向后台请求

如 我前台浏览器向后台请求的接口是 http://127.0.0.1:5099/api/sample/sample/getbuttonlist 实际的请求接口传向 http://192.168.3.71:5099/sample/sample/getbuttonlist 方法是向config中加入下面这样一个server server {listen 5099;location /api/ {rewrite ^/a…

HTML流星雨

目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 岁月如梭&#xff0c;光阴似箭&#xff0c;不知不觉暑假就要来喽&#xff0c;本期小编用HTML给大家手搓了一个炫酷的流星雨动画&#xff0c;一起来看看吧。 完整代码 <!DOCTYPE html> <html lang…

项目风险管理系统有哪些?分享11款主流项目管理系统

本文将分享11款主流项目管理系统&#xff1a;PingCode、Worktile、StandardFusion、MasterControl、ClickUp、SAI360、Netwrix Auditor、MetricStream、Wrike、Celoxis、Zoho Projects。 在项目管理中&#xff0c;风险管理不仅是一个挑战&#xff0c;也是保证项目顺利进行的关键…

探索Vim的文本处理能力:精通查找与替换

探索Vim的文本处理能力&#xff1a;精通查找与替换 Vim&#xff0c;作为Linux终端下的王牌文本编辑器&#xff0c;以其强大的功能和灵活性深受开发者和系统管理员的喜爱。在Vim中进行查找和替换是文本编辑中的一项基础且重要的操作。本文将详细解释如何在Vim中执行查找和替换文…

Linux Redis 服务设置开机自启动

文章目录 前言一、准备工作二、操作步骤2.1 修改redis.conf文件2.2 创建启动脚本2.3 设置redis 脚本权限2.4 设置开机启动2.5 验证 总结 前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博客&#xff1a;南国以南i、 提示&#xff1a;以下是本篇文章正文内容&#x…

编程的难点在哪?是逻辑、算法,还是模块、框架的掌握?

&#x1f446;点击关注 回复『新人礼』获取学习礼包&#x1f446; 很多新手程序员在一开始都是满怀热情地投入到编程的学习&#xff0c;但却在学习过程中处处碰壁&#xff0c;导致放弃。 编程的难点在于逻辑、数学、算法&#xff0c;还是模块、框架、接口的掌握&#xff1f;但…

idea Error running ‘Application‘

1、Error running ‘Application’ Error running ApplicationError running Application. Command line is too long.Shorten the command line via JAR manifest or via a classpath file and rerun.找到 .idea/libraies/workspace.xml 中的 PropertiesComponent 属性&#…

Android InputDispatcher分发输入事件

派发循环是指 InputDispatcher 不断地派发队列取出事件&#xff0c;寻找合适的窗口并进行发送的过程&#xff0c;是 InputDispatcher 线程的主要工作 事件发送循环是 InputDispatcher 通过 Connection 对象将事件发送给窗口&#xff0c;并接受其反馈的过程 InputDispatcher —…