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

posted @ 2024-01-04 17:55  o蹲蹲o  阅读(2)  评论(0编辑  收藏  举报