Erstellen Sie eine Sudoku-Lösung CHECKER
Es gibt unzählige Sudoku-LÖSER hier, aber ich möchte, dass Sie eine Lösung erstellen, die so klein wie möglich ist (Code-Golf).
Ein gültiger Eintrag kann entweder ein 9x9-Array als Argument verwenden (als Referenz übergeben, in der Befehlszeile serialisiert oder wie auch immer Sie es verwenden möchten) oder eine Eingabedatei akzeptieren, die neun Zeilen mit neun Zahlen für das endgültige Raster enthält . Beispiele für Eingaben finden Sie weiter unten.
Gültige Eingaben sollten Zahlen zur Basis 10 (1-9) sein.
Fehlende, leere, zusätzliche, nicht numerische Positionen oder Positionen mit Zahlen außerhalb von 1-9 sollten als ungültige Eingabe zurückgewiesen werden, indem ein Ergebnis ungleich Null zurückgegeben wird, ein Fehler gedruckt wird oder beides.
Ihr Programm muss testen, ob jede Zahl einmal pro Spalte, einmal pro Zeile und einmal pro 3x3-Teilraster erscheint. Wenn es erfolgreich ist, geben Sie "0" zurück, und wenn nicht, geben Sie ein Ergebnis ungleich Null zurück.
Die Verwendung externer Ressourcen (Websites usw.) ist zu vermeiden.
Wenn es sich bei Ihrer Lösung um ein eigenständiges Programm handelt, ist das Beenden mit dem Status "Bestanden" oder "Nicht bestanden" oder "Nicht bestanden" oder "Nicht bestanden" oder nicht bestanden "in Ordnung.
Lass die kleinste Antwort gewinnen!
Eingabebeispiele:
c array:
int input[9][9]={{1,2,3,4,5,6,7,8,9},
{4,5,6,7,8,9,1,2,3},
{7,8,9,1,2,3,4,5,6},
{2,3,1,5,6,4,8,9,7},
{5,6,4,8,9,7,2,3,1},
{8,9,7,2,3,1,5,6,4},
{3,1,2,6,4,5,9,7,8},
{6,4,5,9,7,8,3,1,2},
{9,7,8,3,1,2,6,4,5}
};
Datei:
123456789
456789123
789123456
231564897
564897231
897231564
312645978
645978312
978312645
Die 9 Teilraster:
+---+---+---+
|123|456|789|
|456|789|123|
|789|123|456|
+---+---+---+
|231|564|897|
|564|897|231|
|897|231|564|
+---+---+---+
|312|645|978|
|645|978|312|
|978|312|645|
+---+---+---+
1
oder-1