一个 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
广告