题解 | #翻转单词序列#

翻转单词序列

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) # 拼接并返回
全部评论

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务