Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมย้อนกลับคำที่คั่นด้วยชุดตัวคั่นใน python


สมมติว่าเรามีสตริงและชุดตัวคั่น เราต้องกลับคำในสตริง โดยที่ไม่ควรเปลี่ยนลำดับสัมพัทธ์ของตัวคั่น

ดังนั้น หากอินพุตเป็น 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