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