ในตอนทุรานักโทษแห่ง Bendaสมาชิกของร่างกายแลกเปลี่ยนลูกเรือกับแต่ละอื่น ๆ ด้วยการจับคู่ที่ไม่ร่างกายสามารถมีจิตใจของพวกเขาสลับมากกว่าหนึ่งครั้ง
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ยอมรับคอลเลกชั่นสว็อป - จิตใจที่ถูกต้องที่เกิดขึ้นแล้วและส่งชุดสว็อปตามกฎหมายที่จะนำจิตใจแต่ละดวงกลับคืนสู่ร่างกายดั้งเดิม ตัวระบุสำหรับคอลเลกชันของร่างกายและจิตใจเหล่านี้จะต้องเป็นสตริงซึ่งจะไม่ขึ้นบรรทัดใหม่ คุณสามารถเพิ่มผู้คนที่ไม่เคยมีการสลับไปยังกลุ่มอินพุทได้ถึงสองคน (ตั้งชื่ออย่างชัดเจน) (พิสูจน์ได้ว่าคุณต้องการร่างกายเพิ่มได้เพียง 2 ตัวเท่านั้น)อย่างไรก็ตามคุณต้องเพิ่มจำนวนคนขั้นต่ำที่จำเป็นในการแก้ปัญหา
การป้อนข้อมูลและการส่งออกอาจมีรูปแบบที่ชัดเจนใด ๆ แต่ไม่มีข้อมูลเพิ่มเติมสามารถเก็บไว้ในทั้ง คุณอาจคิดว่ามันถูกต้องเสมอ นี่คือรหัสกอล์ฟดังนั้นผู้ชนะคือการส่งที่มีไบต์น้อยที่สุด
ตัวอย่าง
[('A','B'),('C','D')] -> [('A','C'),('B','D'),('A','D'),('B','C')]
['A','B'] -> ['C','D','A','C','B','D','A','D','B','C']
[('A','B'),('C','D'),('A','C'),('A','D')] -> [('B', 'E'), ('A', 'E'), ('C', 'B'), ('C', 'E')]
"A\nB\nC\nD\n" -> "A\nC\nB\nD\nA\nD\nB\nC\n"
หนึ่งจากการแสดง:
[("Amy","Hubert"),("Bender","Amy"),("Hubert","Turanga"),("Amy","Wash Bucket"),("Wash Bucket","Nikolai"),("Phillip","John"),("Hermes","Turanga")]
วิธีแก้ปัญหาของรายการที่ระบุด้านล่างไม่ถูกต้อง:
[("Clyde","Phillip"),("Ethan","John"),("Clyde","John"),("Ethan",Phillip"),("Clyde","Hubert"),("Ethan","Wash Bucket"),("Clyde","Leela"),("Ethan","Nikolai"),("Clyde","Hermes"),("Ethan","Bender"),("Clyde","Amy"),("Ethan","Hubert"),("Clyde","Wash Bucket")]
สิ่งนี้ไม่ถูกต้องเนื่องจากอีธานและไคลด์ไม่จำเป็นเพราะฟิลลิปฟรายเล็กน้อย, Zoidberg John และHermes Hermes ใช้เครื่อง วิธีแก้ปัญหาที่ถูกต้องสำหรับกรณีนี้มีให้ด้านล่าง:
[("Philip","Hubert"),("John","Wash Bucket"),("Philip","Turanga"),("John","Nikolai"),("Philip","Hermes"),("John","Bender"),("Philip","Amy"),("John","Hubert"),("Philip","Wash Bucket")]
โปรดทราบว่ามีคำตอบที่เป็นไปได้อย่างชัดเจนสำหรับอินพุตที่ถูกต้อง ใด ๆ ที่ถูกต้อง
[('Nikolai', 'Phillip'), ('Nikolai', 'Hubert'), ('Nikolai', 'Turanga'), ('Nikolai', 'Bender'), ('Phillip', 'Amy'), ('John', 'Wash Bucket'), ('Nikolai', 'John'), ('Phillip', 'Wash Bucket'), ('Hubert', 'John'), ('Bender', 'Hermes')]