Finden Sie bei einem Sudoku-Puzzle alle möglichen Markierungen, die in jede leere Zelle gefüllt werden können.
Testfall
Eingang:
[
[
// Top left:
[
0, 0, 0,
3, 4, 0,
0, 0, 2
],
// Top middle:
[
7, 4, 0,
0, 0, 0,
0, 0, 3
],
// Top right:
[
8, 0, 0,
1, 7, 0,
0, 0, 0
]
],
[
// Middle left:
[
9, 0, 4,
7, 0, 0,
1, 0, 3
],
// Center:
[
0, 5, 0,
0, 0, 0,
0, 7, 0
],
// Middle right:
[
0, 0, 0,
6, 4, 0,
0, 0, 0
]
],
[
// Bottom left:
[
0, 0, 7,
6, 3, 0,
0, 0, 0
],
// Bottom middle:
[
0, 0, 5,
0, 0, 0,
9, 1, 0
],
// Bottom right:
[
0, 0, 0,
5, 2, 0,
7, 0, 0
]
]
]
Ausgabe:
[
[
// Top left:
[
[5], [1, 5, 6, 9], [1, 5, 6, 9],
[], [], [5, 6, 8, 9],
[5, 8], [1, 5, 6, 7, 8, 9], []
],
// Top middle:
[
[], [], [1, 2, 6, 9],
[2, 5, 6, 8], [2, 6, 8, 9], [2, 6, 8, 9],
[1, 5, 6, 8], [6, 8, 9], []
],
// Top right:
[
[], [3, 5, 6, 9], [2, 3, 5, 6, 9],
[], [], [2, 5, 6, 9],
[4, 9], [5, 6, 9], [4, 5, 6, 9]
]
],
[
// Middle left:
[
[], [2, 6, 8], [],
[], [2, 5, 8], [5, 8],
[], [2, 5, 6, 8], []
],
// Center:
[
[1, 2, 3, 6, 8], [], [1, 2, 6, 8],
[1, 2, 3, 8], [2, 3, 8, 9], [1, 2, 8, 9],
[2, 4, 6, 8], [], [2, 4, 6, 8, 9]
],
// Middle right:
[
[2, 3], [1, 3, 8], [1, 2, 3, 7, 8],
[], [], [1, 2, 3, 5, 8, 9],
[2, 9], [5, 8, 9], [2, 5, 8, 9]
]
],
[
// Bottom left:
[
[2, 4, 8], [1, 2, 8, 9], [],
[], [], [1, 8, 9],
[2, 4, 5, 8], [2, 5, 8], [5, 8]
],
// Bottom middle:
[
[2, 3, 4, 6, 8], [2, 3, 6, 8], [],
[4, 8], [8], [4, 7, 8],
[], [], [2, 4, 6, 8]
],
// Bottom right:
[
[3, 4, 9], [1, 3, 6, 8, 9], [1, 3, 4, 6, 8, 9],
[], [], [1, 4, 8, 9],
[], [3, 6, 8], [3, 4, 6, 8]
]
]
]
Ausgabevisualisierung; die kleinen Zahlen:
Regeln
- Das ist ein Code-Golf. Die kürzeste Antwort in Bytes (oder gleichwertig) gewinnt.
- Die Eingabe kann im Array- oder String-Format erfolgen.
- Die Eingabe muss in der oben angegebenen Reihenfolge erfolgen (oben links, oben in der Mitte, oben rechts usw.)
- Die Ausgabe kann im Array- oder String-Format erfolgen, sofern die Ausgabe das erwartete Ergebnis logisch darstellen kann.
- Die Ausgabe muss in derselben Reihenfolge wie die Eingabe erfolgen (oben links, oben in der Mitte, oben rechts usw.)
- Die Ausgabe muss nicht verschönert werden.
- Der Code muss auf jedes gültige unvollständige Sudoku-Raster anwendbar sein.
- Es gelten die Standardregeln für das Golfen.
Zusätzliche Bemerkungen:
Sie erhalten zusätzliche gefälschte Internetpunkte, wenn Ihr Programm oder Ihre Funktion das Ergebnis verwendet, um das Sudoku-Rätsel so weit zu lösen, dass Zellwerte nicht mehr logisch gelöst werden können. Beispielsweise kann die allererste Zelle im Testfall möglicherweise nur die Nummer 5 enthalten, daher sollte dies beim Ausfüllen der anderen Werte berücksichtigt werden. Dies ist nur zum Spaß und zur zusätzlichen Herausforderung, andernfalls gewinnt die kürzeste Antwort, unabhängig davon, ob dieses Kriterium erfüllt ist oder nicht.
code-golf
puzzle-solver
sudoku
Driima
quelle
quelle
["000340002", "740000003", ...]
)Antworten:
C (gcc), 193 Bytes
Nimmt die Eingabe im folgenden Format an (dasselbe Sudoku wie oben):
Und Ausgaben im folgenden Format:
quelle
Python 2, 178 Bytes
Eine anonyme Funktion, die ein dreidimensionales Array von Ints verwendet und ein vierdimensionales Array von Ints zurückgibt.
quelle
JavaScript (ES6),
208196190188186 BytesEingabe :
Ein Array von 9 Zeichenfolgen (eine pro Box, von links oben nach rechts unten).
Ausgabe :
Ein Array von 9 Arrays, wobei jedes Element entweder aus der ursprünglichen Nummer an dieser Position oder aus einem Array von Zeichen besteht, die die möglichen Ziffern darstellen.
Formatiert und kommentiert
Demo
quelle
Haskell, 135 Bytes
Definiert eine Funktion
f
von Listen von 81Int
s bis zu Listen von Listen vonInt
s;IO ist wie die Antwort von orlp , außer dass es
[0,1,2,3,4,5,6,7,8,9]
anstelle von verwendet wird".123456789"
.Dianne hat ein paar Bytes gespeichert.
quelle
JavaScript (ES6), 185 Byte
Nimmt als Eingabe ein Array von drei Zeilen eines Arrays von drei Spalten eines drei mal drei Arrays von Zellen von Ganzzahlen und gibt ein fünfdimensionales Array zurück, in dem alle Ganzzahlen durch Arrays ersetzt wurden.
quelle