Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình đảo ngược các từ được phân tách bằng tập hợp các dấu phân cách trong python

Giả sử chúng ta có một chuỗi và một tập hợp các dấu phân cách, chúng ta phải đảo ngược các từ trong chuỗi trong khi thứ tự tương đối của các dấu phân cách không được thay đổi.

Vì vậy, nếu đầu vào giống như s ="Máy tính / Mạng:Internet | tutorialspoint" delims =["/", ":", '|'], thì đầu ra sẽ là hướng dẫn / Internet:Mạng | Máy tính

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau:

words:=a new list

ans:=chuỗi trống

temp:=một bản đồ ở đó

Tách các từ ngoại trừ các ký tự phân cách và chèn chúng vào mảng từ

tách các từ khi ký tự ở trong dấu phân cách rồi thêm chúng vào ans,

nếu không thì đọc ngược lại từ trong mảng từ và thêm vào ans

trả lại ans

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn:

Ví dụ

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))

Đầu vào

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

Đầu ra

tutorialspoint/Internet:Network|Computer