一個 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 次瀏覽

開啟您的 職業生涯

完成課程即可獲得證書

開始
廣告
© . All rights reserved.