Trong tập Futurama, tù nhân của các thành viên của nhóm phi hành đoàn hoán đổi thân xác với nhau, với lý do không một cặp thi thể nào có thể khiến tâm trí họ bị tráo đổi nhiều lần.
Thử thách
Viết một chương trình hoặc chức năng chấp nhận một bộ sưu tập hoán đổi thân tâm hợp lệ đã xảy ra và đưa ra một bộ hoán đổi hợp pháp sẽ đưa mỗi tâm trí trở lại cơ thể ban đầu. Các định danh cho các bộ sưu tập thân tâm này phải là các chuỗi sẽ không chứa các dòng mới. Bạn có thể thêm tối đa hai người (được đặt tên rõ ràng), những người không có giao dịch hoán đổi trước với nhóm đầu vào. (Bằng chứng là bạn chỉ cần tối đa 2 cơ quan bổ sung) Tuy nhiên, bạn phải thêm số người tối thiểu cần thiết để giải quyết vấn đề.
Đầu vào và đầu ra có thể có bất kỳ hình thức rõ ràng nào, tuy nhiên, không có thông tin bổ sung nào có thể được lưu trữ trong một trong hai. Bạn có thể cho rằng nó luôn hợp lệ. Đây là mã golf, vì vậy người chiến thắng là bài nộp với ít byte nhất.
Ví dụ
[('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"
Một trong những chương trình:
[("Amy","Hubert"),("Bender","Amy"),("Hubert","Turanga"),("Amy","Wash Bucket"),("Wash Bucket","Nikolai"),("Phillip","John"),("Hermes","Turanga")]
Giải pháp của chương trình, được đưa ra dưới đây là không hợp lệ:
[("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")]
Điều này không hợp lệ vì Ethan và Clyde không cần thiết vì cách mà Fry Phillip, Zoidberg John và Hermes Hermes sử dụng máy rất ít. Một giải pháp hợp lệ cho trường hợp này được cung cấp dưới đây:
[("Philip","Hubert"),("John","Wash Bucket"),("Philip","Turanga"),("John","Nikolai"),("Philip","Hermes"),("John","Bender"),("Philip","Amy"),("John","Hubert"),("Philip","Wash Bucket")]
Lưu ý rằng rõ ràng có nhiều câu trả lời có thể cho bất kỳ đầu vào hợp lệ. Bất kỳ là hợp lệ.
[('Nikolai', 'Phillip'), ('Nikolai', 'Hubert'), ('Nikolai', 'Turanga'), ('Nikolai', 'Bender'), ('Phillip', 'Amy'), ('John', 'Wash Bucket'), ('Nikolai', 'John'), ('Phillip', 'Wash Bucket'), ('Hubert', 'John'), ('Bender', 'Hermes')]