557.反转字符串中的单词 III
【LetMeFly】557.反转字符串中的单词 III
力扣题目链接:https://leetcode.cn/problems/reverse-words-in-a-string-iii/
给定一个字符串 s
,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入:s = "Let's take LeetCode contest" 输出:"s'teL ekat edoCteeL tsetnoc"
示例 2:
输入: s = "God Ding" 输出:"doG gniD"
提示:
1 <= s.length <= 5 * 104
s
包含可打印的 ASCII 字符。s
不包含任何开头或结尾空格。s
里 至少 有一个词。s
中的所有单词都用一个空格隔开。
方法一:模拟
首先,遍历并找到字符串中的所有的空格
接着,翻转两个空格之间的字符串即可。
C++
使用一个变量begin记录这个“子字符串”开始的下标
接着遍历原始字符串,如果遍历到了原始字符串的末尾或者空格,就翻转这个子字符串,并更新begin的值
- 时间复杂度$O(len(s))$
- 空间复杂度$O(1)$
Python
首先将原始字符串以空格分隔
1 |
|
接着,使用join
函数,以空格为间隔按顺序添加“分隔后字符列表中的每一个字符 的 反向形式”
1 |
|
其中$i$是“分隔后字符列表中的每一个字符”,$i[::-1]$是其翻转后的形式。
- 时间复杂度$O(len(s))$
- 空间复杂度$O(len(s))$
AC代码
C++
1 |
|
Python
1 |
|
同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/129526011
557.反转字符串中的单词 III
https://blog.letmefly.xyz/2023/03/14/LeetCode 0557.反转字符串中的单词III/