0151. 颠倒字符串中的单词 #
- 标签:双指针、字符串
- 难度:中等
题目大意 #
给定一个字符串 s
。
要求:逐个翻转字符串中所有的单词。
说明:
- 数组字符串
s
可以再前面、后面或者单词间包含多余的空格。 - 翻转后的单词应当只有一个空格分隔。
- 翻转后的字符串不应该包含额外的空格。
解题思路 #
第一种思路比较简单,就是直接调用 Python 的库函数,对字符串进行切片,翻转,然后拼合成字符串。
第二种思路根据 API 的思路写出模拟代码,具体步骤如下:
- 使用数组 words 存放单词,使用字符串变量 cur 存放当前单词。
- 遍历字符串,对于当前字符 ch。
- 如果遇到空格,则:
- 如果当前单词不为空,则将当前单词存入数组 words 中,并将当前单词置为空串
- 如果遇到字符,则:
- 将其存入当前单词中,即 cur += ch。
- 如果遍历完,当前单词不为空,则将当前单词存入数组 words 中。
- 然后对数组 words 进行翻转操作,令 words[i], words[len(words) - 1 - i] 交换元素。
- 最后将 words 中的单词连接起来,中间拼接上空格,将其作为答案返回。
代码 #
- 思路一代码:
|
|
- 思路二代码:
|
|