LeetCode 2129.将标题首字母大写:模拟(一个变量记录是否该大写)

【LetMeFly】2129.将标题首字母大写:模拟(一个变量记录是否该大写)

力扣题目链接:https://leetcode.cn/problems/capitalize-the-title/

给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 :

  • 如果单词的长度为 1 或者 2 ,所有字母变成小写。
  • 否则,将单词首字母大写,剩余字母变成小写。

请你返回 大写后 的 title 。

 

示例 1:

输入:title = "capiTalIze tHe titLe"
输出:"Capitalize The Title"
解释:
由于所有单词的长度都至少为 3 ,将每个单词首字母大写,剩余字母变为小写。

示例 2:

输入:title = "First leTTeR of EACH Word"
输出:"First Letter of Each Word"
解释:
单词 "of" 长度为 2 ,所以它保持完全小写。
其他单词长度都至少为 3 ,所以其他单词首字母大写,剩余字母小写。

示例 3:

输入:title = "i lOve leetcode"
输出:"i Love Leetcode"
解释:
单词 "i" 长度为 1 ,所以它保留小写。
其他单词长度都至少为 3 ,所以其他单词首字母大写,剩余字母小写。

 

提示:

  • 1 <= title.length <= 100
  • title 由单个空格隔开的单词组成,且不含有任何前导或后缀空格。
  • 每个单词由大写和小写英文字母组成,且都是 非空 的。

方法一:模拟(一个变量记录是否该大写)

方法千万个,能过第一个。

可以用一个变量shouldUpper来记录下一个字符是否应该大写。

遍历字符串:

  • 如果当前字符为空格:将shouldUpper赋值为“还有至少3个字符后三个字符都为字母
  • 否则,根据shouldUpper的值将当前字符修改为大写或小写,之后将shouldUpper修改为false
  • 时间复杂度 O ( l e n ( t i t l e ) ) O(len(title)) O(len(title))
  • 空间复杂度:对于可变字符串的编程语言如C++, O ( 1 ) O(1) O(1);对于不可变字符串的编程语言如Python, O ( l e n ( t i t l e ) ) O(len(title)) O(len(title))

AC代码

C++
class Solution {
public:string capitalizeTitle(string title) {bool shouldUpper = title.size() >= 3 && title[1] != ' ' && title[2] != ' ';for (int i = 0; i < title.size(); i++) {if (title[i] == ' ') {shouldUpper = i + 3 < title.size() && title[i + 2] != ' ' && title[i + 3] != ' ';continue;}title[i] = shouldUpper ? toupper(title[i]) : tolower(title[i]);shouldUpper = false;}return title;}
};
Python
class Solution:def capitalizeTitle(self, title: str) -> str:shouldUpper = len(title) >= 3 and title[1] != ' ' and title[2] != ' 'ans_list = []for i in range(len(title)):if title[i] == ' ':shouldUpper = i + 3 < len(title) and title[i + 2] != ' ' and title[i + 3] != ' 'ans_list.append(' ')  # 不同于可变数组的语言,这里记得也要加上空格continueans_list.append(title[i].upper() if shouldUpper else title[i].lower())shouldUpper = Falsereturn ''.join(ans_list)

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/136614914

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

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

相关文章

STM32CubeIDE基础学习-STM32CubeIDE软件代码编写格式问题

STM32CubeIDE基础学习-STM32CubeIDE软件代码编写格式问题 前言 代码编写最好就是规定一个格式&#xff0c;或者建立一个偏好&#xff0c;这样写出来的代码就方便自己管理了&#xff0c;不然代码乱放下次打开工程就很难找到具体位置&#xff0c;如果规定了格式&#xff0c;那么…

Git 系列:简介安装以及配置管理

文章目录 简介安装简介Centos安装 配置管理[git help](https://www.git-scm.com/docs/git-help)概要选项示例git-doc [git config](https://www.git-scm.com/docs/git-config)概要选项变量示例 初始化配置 简介安装 简介 https://git-scm.com/ Git是一个开源的分布式版本控制…

软件测试知识面试题:测试计划关键、BUG流程、BUG描述、测试的整体覆盖率

文章目录 做好测试计划工作的关键是什么&#xff1f;公司的BUG流程是什么&#xff1f;如何提交一个好的bug&#xff1f;BUG描述包含哪些内容&#xff1f;讲述自己在项目中发现最有意义的一个 BUG&#xff0c;是什么导致出现这个问题&#xff1f;&#xff08;例子&#xff09;对…

Python 进行把图片转换为pdf

文章目录 Python 进行把图片转换为pdfPDF文件格式什么是PyMuPDF使用demo Python 进行把图片转换为pdf PDF文件格式 可移植文档格式&#xff08;PDF&#xff09;属于最常用的数据格式。在1990年&#xff0c;PDF文档的结构由Adobe定义。PDF格式的思想是&#xff0c;对于通信过程…

理论学习:Softmax层和全连接层 全连接层之前的数据

Softmax层和全连接层 Softmax层和全连接层在深度学习模型中通常是紧密相关的&#xff0c;经常一起使用。 全连接层&#xff08;也称为线性层或密集连接层&#xff09;是深度学习模型中常见的层之一&#xff0c;它将输入张量与权重矩阵相乘&#xff0c;并添加偏置项&#xff0c;…

酒店宾馆医院IPTV电视系统质保期满后怎样进行维护?-酒店宾馆医院IPTV电视系统质保期满常年巡检售后服务攻略

酒店宾馆医院IPTV电视系统质保期满后怎样进行维护&#xff1f;-酒店宾馆医院IPTV电视系统质保期满常年巡检售后服务攻略 北京海特伟业任洪卓发布于2024年3月11日 一、酒店IPTV电视系统简述 酒店IPTV电视系统&#xff0c;是新时代“互联网”在酒店领域的重要应用之一&#xff…

15双体系Java学习之数组的声明和创建

数组的声明 ★小贴士 可以使用int[] a;或者int a[];建议使用第一种风格&#xff0c;因为它将元素类型int[]&#xff08;整型数组&#xff09;与变量名清晰分开了。 在Java中声明数组时不能指定其长度。这种定义是非法的&#xff1a;int a[5]; 注意&#xff1a;上图显示的内存…

JDBC连接MysqL

import java.sql.*;public class Demo {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1.注册驱动&#xff0c;加载驱动&#xff1b;Class.forName("com.mysql.jdbc.Driver");//2.获得连接,返回connection类型的对象&…

重学SpringBoot3-集成Thymeleaf

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Thymeleaf 1. 添加Thymeleaf依赖2. 配置Thymeleaf属性&#xff08;可选&#xff09;3. 创建Thymeleaf模板4. 创建一个Controller5. 运行应用并访问页…

数学建模-模糊性综合评价模型

中医药是中国传统文化的重要组成部分&#xff0c;凝聚了中华民族千百年来智慧的结晶。作为中医的发源地&#xff0c;中国政府一直致力于保护、发展和推广中医药&#xff0c;采取了一系列政策措施[]。目前&#xff0c;中国面临着老龄化日益加剧&#xff0c;老年人群中慢性疾病和…

PyTorch学习笔记(四)

2.8 torch.logspace函数讲解 torch.logspace 函数在 PyTorch 中用于生成一个在对数尺度上均匀分布的张量&#xff08;tensor&#xff09;。这意味着张量中的元素是按照对数间隔排列的&#xff0c;而不是线性间隔。这对于创建在数值上跨越多个数量级的序列特别有用&#xff0c;…

在家不无聊,赚钱有门道:5个正规线上赚钱平台,轻松开启副业

随着网络技术的快速发展&#xff0c;越来越多的人开始寻求通过网络来探索兼职副业的可能性&#xff0c;期望实现额外的收入。在这个过程中&#xff0c;选择一个正规且可靠的线上兼职平台显得尤为关键。 为此小编精心网上盘点了5个正规且靠谱的线上兼职副业平台。这些平台不仅安…

双环PID控制详细讲解

参考博客&#xff1a; &#xff08;1&#xff09;PID双环控制&#xff08;速度环和位置环&#xff09; &#xff08;2&#xff09;PID控制&#xff08;四&#xff09;&#xff08;单环与双环PID&#xff09; &#xff08;3&#xff09;内外双环pid算法 0 单环PID 目标位置→系…

Promise图解,Pass

10-优化代码_哔哩哔哩_bilibili

2024年,真的别裸辞....

作为IT行业的大热岗位——软件测试&#xff0c;只要你付出了&#xff0c;就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的&#xff0c;但放眼望去&#xff0c;哪个工作不是这样的呢&#xff1f;会有哪家公司愿意养一些闲人呢&#xff1f;…

随笔之浏览器打开一个网页的全部过程

用户输入网址&#xff08;URL&#xff09;: 用户在浏览器地址栏中输入网址&#xff0c;例如&#xff1a;https://www.example.com。 dns解析 计算机尝试解析一个域名时&#xff0c;首先会检查本地 hosts 文件&#xff0c;看是否存在相应的映射。如果存在映射&#xff0c;计算…

数据结构 第2章:线性表

文章目录 2.1 线性表的定义和操作2.1.1 线性表的基本概念2.1.2 线性表的基本操作 2.2. 顺序表2.2.1. 顺序表的基本概念2.2.2. 顺序表的实现2.2.3. 顺序表的基本操作 2.3 链表2.3.1 单链表的基本概念2.3.2 单链表的实现2.3.3 单链表的插入2.3.4. 单链表的删除2.3.5. 单链表的查找…

mybatis-plus-generator 使用 velocity 生成前后台代码

操作步骤 1&#xff09;准备mybatis-plus 生成代码的 vm文件 2&#xff09;添加依赖 mybatis-plus-generator 代码生成器的依赖 3&#xff09;执行工具方法生成代码 1、准备 mybatis-plus 生成代码的 vm文件 1&#xff09;找vm模板 去工程的 external Libraries 找到 mybati…

Java SE入门及基础(38)

异常(Exception) 1. 概念 异常 来自官方的说明 An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the programs instructions. 异常是在程序执行期间发生的事件&#xff0c;该事件中断了程序指令的正常流程…

anaconda, conda, conda-forge

anaconda是python包管理器 conda-forge是conda源中的一个分支&#xff0c;是一个库&#xff0c;包含许多软件包(package)。当使用命令“conda install -c conda-forge some-package”时&#xff0c;“-c conda-forge”表示从conda-forge库中下载并安装名为“some-package”软件…