题解 | #翻转单词序列#

翻转单词序列

https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3

  1. 直接split。
class Solution:
    def ReverseSentence(self , str: str) -> str:
        a = str.split()
        a = a[::-1]
        return ' '.join(a) 
  1. 使用re模块匹配正则表达式。适用范围更普遍啦。
    import re
    class Solution:
    def ReverseSentence(self , str: str) -> str:
        datepat = re.compile(r'\S+')
        return ' '.join(datepat.findall(str)[::-1])
  2. 反向循环搜索空格,获得单词切片,加入列表
    class Solution:
      def ReverseSentence(self , str: str) -> str:
          s = str.strip() # 删除首尾空格
          i = j = len(s) - 1
          res = []
          while i >= 0:
              while i >= 0 and s[i] != ' ': i -= 1 # 搜索首个空格
              res.append(s[i + 1: j + 1]) # 添加单词
              while s[i] == ' ': i -= 1 # 跳过单词间空格
              j = i # j 指向下个单词的尾字符
          return ' '.join(res) # 拼接并返回
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
点赞 评论 收藏
分享
码农索隆:力扣的题目还挺贴近现实
点赞 评论 收藏
分享
07-08 13:48
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务