Futurama bölümde Benda Tutsağı hiçbir çifti o yakalamak ile birbirleri ile mürettebat takas kuruluşlarının üyelerinin, organları akıllarını olabilir kereden fazla takas.
Meydan okuma
Zaten gerçekleşmiş geçerli bir zihin-beden swap koleksiyonunu kabul eden ve her zihni orijinal bedenine döndürecek yasal bir dizi swap veren bir program veya işlev yazın. Bu zihin-beden koleksiyonları için tanımlayıcılar, yeni satırlar içermeyen dizeler olmalıdır. Giriş grubuna önceden takasları olmayan en fazla iki (belirgin olarak adlandırılmış) kişi ekleyebilirsiniz. (Yalnızca en fazla 2 ek gövdeye ihtiyacınız olduğunu kanıtlayın) Ancak, sorunu çözmek için gereken minimum sayıda kişiyi eklemeniz gerekir.
Giriş ve çıkış herhangi bir net biçimde olabilir, ancak hiçbir ek bilgi saklanamaz. Her zaman geçerli olduğunu varsayabilirsiniz. Bu kod golf, yani kazanan en az bayt ile sunulmasıdır.
Örnekler
[('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"
Gösteriden:
[("Amy","Hubert"),("Bender","Amy"),("Hubert","Turanga"),("Amy","Wash Bucket"),("Wash Bucket","Nikolai"),("Phillip","John"),("Hermes","Turanga")]
Şovun aşağıda verilen çözümü geçersiz:
[("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")]
Bu geçersiz çünkü Ethan ve Clyde, Fry Phillip, Zoidberg John ve Hermes Hermes'in makineyi ne kadar az kullandıkları için gereksiz . Bu dava için geçerli bir çözüm aşağıda sunulmuştur:
[("Philip","Hubert"),("John","Wash Bucket"),("Philip","Turanga"),("John","Nikolai"),("Philip","Hermes"),("John","Bender"),("Philip","Amy"),("John","Hubert"),("Philip","Wash Bucket")]
Geçerli herhangi bir giriş için birçok olası cevabın açıkça bulunduğunu unutmayın. Herhangi biri geçerlidir.
[('Nikolai', 'Phillip'), ('Nikolai', 'Hubert'), ('Nikolai', 'Turanga'), ('Nikolai', 'Bender'), ('Phillip', 'Amy'), ('John', 'Wash Bucket'), ('Nikolai', 'John'), ('Phillip', 'Wash Bucket'), ('Hubert', 'John'), ('Bender', 'Hermes')]