In der Folge Futurama Der Gefangene von Benda Mitglieder der Besatzung Wechselbrücken miteinander, mit dem Fang , dass kein Paar von Körpern ihren Köpfen haben können getauscht mehr als einmal.
Herausforderung
Schreiben Sie ein Programm oder eine Funktion, die eine gültige Sammlung bereits aufgetretener Mind-Body-Swaps akzeptiert und eine legale Reihe von Swaps ausgibt, die jeden Mind zu seinem ursprünglichen Körper zurückführen. Die Bezeichner für diese Mind-Body-Sammlungen müssen Zeichenfolgen sein, die keine Zeilenumbrüche enthalten. Sie können der Eingabegruppe bis zu zwei (eindeutig benannte) Personen hinzufügen, die zuvor keine Auslagerungen vorgenommen haben. (Nachweis, dass Sie höchstens 2 zusätzliche Stellen benötigen) Sie müssen jedoch die Mindestanzahl von Personen hinzufügen, die zur Lösung des Problems erforderlich sind.
Die Eingabe und Ausgabe kann eine eindeutige Form annehmen, es können jedoch auch keine zusätzlichen Informationen gespeichert werden. Sie können davon ausgehen, dass es immer gültig ist. Dies ist Code Golf, der Gewinner ist also die Einreichung mit den wenigsten Bytes.
Beispiele
[('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"
Der aus der Show:
[("Amy","Hubert"),("Bender","Amy"),("Hubert","Turanga"),("Amy","Wash Bucket"),("Wash Bucket","Nikolai"),("Phillip","John"),("Hermes","Turanga")]
Die unten angegebene Lösung der Show ist ungültig:
[("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")]
Dies ist ungültig, da Ethan und Clyde unnötig sind, da Fry Phillip, Zoidberg John und Hermes Hermes die Maschine nur wenig benutzt haben. Eine gültige Lösung für diesen Fall finden Sie unten:
[("Philip","Hubert"),("John","Wash Bucket"),("Philip","Turanga"),("John","Nikolai"),("Philip","Hermes"),("John","Bender"),("Philip","Amy"),("John","Hubert"),("Philip","Wash Bucket")]
Beachten Sie, dass es für jede gültige Eingabe eindeutig viele mögliche Antworten gibt. Jeder ist gültig.
[('Nikolai', 'Phillip'), ('Nikolai', 'Hubert'), ('Nikolai', 'Turanga'), ('Nikolai', 'Bender'), ('Phillip', 'Amy'), ('John', 'Wash Bucket'), ('Nikolai', 'John'), ('Phillip', 'Wash Bucket'), ('Hubert', 'John'), ('Bender', 'Hermes')]