一个 Python 程序,用于颠倒由一系列分隔符定界的单词顺序


假设我们有一个字符串和一组分隔符,我们必须颠倒字符串中的单词顺序,同时分隔符的相对顺序不应该改变。

因此,如果输入类似于 s = "计算机/网络:Internet|tutorialspoint" delims = ["/", ":", '|'], 那么输出将是 tutorialspoint/Internet:Network|Computer

要解决这个问题,我们将遵循以下步骤

words := 一个新列表

ans := 空字符串

temp := 一个映射,其中

将单词(分隔符字符除外)分开,并将其插入 words 数组

如果字符在分隔符中,则将单词分开并将其添加到 ans 中,

否则从 words 数组中反向读取单词并添加到 ans 中

返回 ans

让我们看看以下实现来获得更好的理解

示例

实时演示

from itertools import groupby
class Solution:
   def solve(self, sentence, delimiters):
      words = []
      ans = ""

      for k, g in groupby(sentence, lambda x: x in delimiters):
         if not k:
            words.append("".join(g))

      for k, g in groupby(sentence, lambda x: x in delimiters):
         if k:
            ans += "".join(g)
         else:
            ans += words.pop()
      return ans

ob = Solution()
s = "Computer/Network:Internet|tutorialspoint"
delims = ["/", ":", '|']
print(ob.solve(s, delims))

输入

"Computer/Network:Internet|tutorialspoint", ["/", ":", '|']

输出

tutorialspoint/Internet:Network|Computer

更新时间: 26-11-2020

284 次浏览

开启您的 职业生涯

完成课程即可获得证书

开始
广告