day08 代码随想录算法训练营 151. 反转字符串中的单词
words = s.split()
题目:151. 反转字符串中的单词
我的感悟:
- 虽然我自己写出来了,但是又不太确定
理解难点:
words = s.split()
切记:这里split是去掉所有的空格。
words = s.split(" ")
如果这样写" "就仅仅去除" "一个空格,这样写不好。
代码难点:
- split()用法
- " ".join用法 用什么做间隔
- Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
总结概括:
- 还是得用双指针
我的代码:
class Solution:
def reverseWords(self, s: str) -> str:
l = s.split(' ')
res = []
for i in l: # 筛选出不为空的
if i:
res.append(i)
res = res[::-1]
a = ""
for i in res:
a += i + " "
return a[:-1] # 最后1位不要
大神的代码:
用空格" ".join来间隔
l = ' '.join(s.strip().split()[::-1])
代码示例:
class Solution:
def reverseWords(self, s: str) -> str:
words = s.split() # 去掉所有空格并转化为list
# 双指针
left = 0
right = len(words)-1
while left < right:
words[left],words[right] = words[right],words[left]
# 记得移动指针
left +=1
right -=1
res = " ".join(words) # 用" "连接
return res
通过截图:
资料:
https://programmercarl.com/0151.%E7%BF%BB%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2%E9%87%8C%E7%9A%84%E5%8D%95%E8%AF%8D.html#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E7%89%88%E6%9C%AC