สมมติว่าเรามีสตริงและชุดตัวคั่น เราต้องกลับคำในสตริง โดยที่ไม่ควรเปลี่ยนลำดับสัมพัทธ์ของตัวคั่น
ดังนั้น หากอินพุตเป็น s ="Computer/Network:Internet|tutorialspoint" delims =["/", ":", '|'] ผลลัพธ์จะเป็น tutorialspoint/Internet:Network|Computer
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้:
คำ :=รายการใหม่
ตอบ :=สตริงว่าง
temp :=แผนที่ที่
แยกคำยกเว้นตัวคั่นและแทรกลงในอาร์เรย์คำ
แยกคำเมื่อตัวละครอยู่ในตัวคั่นแล้วเพิ่มลงใน 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