Diese Herausforderung ist auf dem folgenden Puzzle basiert: Sie sind ein gegeben n
durch n
Raster mit n
Zellen markiert. Ihre Aufgabe ist es, das Raster in n
Teile zu unterteilen, in denen jedes Teil aus genau n
Zellen besteht, von denen jede genau eine markierte Zelle enthält.
Beispiel
Hier ist ein Puzzle auf der linken Seite und seine (einzigartige) Lösung auf der rechten Seite:
Herausforderung
Sie erhalten einen Satz mit n
Nullindex versehener Koordinaten in einem angemessenen Format.
[(0,0), (0,3), (1,0), (1,1), (2,2)]
Und Ihre Aufgabe ist es, ein Programm zu schreiben, das alle gültigen Paritionen zurückgibt (wiederum in jedem vernünftigen Format).
[
[(0,0), (0,1), (0,2), (1,2), (1,3)],
[(0,3), (0,4), (1,4), (2,4), (3,4)],
[(1,0), (2,0), (3,0), (4,0), (4,1)],
[(1,1), (2,1), (3,1), (3,2), (4,2)],
[(2,2), (2,3), (3,3), (4,3), (4,4)]
]
Wenn das Rätsel keine Lösung hat, sollte das Programm dies anzeigen, indem es einen Fehler auslöst oder eine leere Lösung zurückgibt.
Ein- / Ausgabebeispiele
[(0,0)] => [[(0,0)]]
[(0,0), (1,1)] => [
[(0,0), (1,0)],
[(0,1), (1,1)]
]
[(0,0), (0,1), (1,0)] => [] (no solution)
[(0,0), (0,1), (0,2)] => [
[(0,0), (1,0), (2,0)],
[(0,1), (1,1), (2,1)],
[(0,2), (1,2), (2,2)],
]
[(0,0), (0,2), (1,2)] => [
[(0,0), (1,0), (2,0)],
[(0,1), (0,2), (1,1)],
[(1,2), (2,1), (2,2)],
]
Wertung
Das ist Code-Golf , also gewinnt der kürzeste Code.
quelle
Antworten:
JavaScript (ES7), 166 Byte
Probieren Sie es online!
Wie?
++
quelle