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(len(title))$
- 空间复杂度:对于可变字符串的编程语言如C++, $O(1)$;对于不可变字符串的编程语言如Python, $O(len(title))$
AC代码
C++
1 |
|
Python
1 |
|
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/136614914
2129.将标题首字母大写
https://blog.letmefly.xyz/2024/03/11/LeetCode 2129.将标题首字母大写/