2.9 KiB
Sudoku Validierungsaufgabe
Aufgabenstellung:
Ziel:
Das Ziel dieser Aufgabe ist es, ein JavaScript-Programm zu entwickeln, das die Gültigkeit eines 9x9 Sudoku-Bretts überprüft.
Beschreibung:
Ein Sudoku-Brett besteht aus einer 9x9 Matrix, die in 3x3 Blöcke unterteilt ist. Jede Zelle des Bretts kann entweder eine Zahl von 1 bis 9 oder einen Punkt ('.') enthalten, der eine leere Zelle darstellt. Ein gültiges Sudoku-Brett muss drei Bedingungen erfüllen:
- Jede Zeile muss die Zahlen 1-9 ohne Wiederholung enthalten.
- Jede Spalte muss die Zahlen 1-9 ohne Wiederholung enthalten.
- Jedes der neun 3x3-Unterquadrate muss die Zahlen 1-9 ohne Wiederholung enthalten.
Es ist wichtig zu beachten, dass ein Sudoku-Brett (auch wenn es teilweise gefüllt ist) gültig sein kann, aber nicht unbedingt lösbar ist. Daher müssen in dieser Aufgabe nur die gefüllten Zellen gemäß den oben genannten Regeln überprüft werden.
Eingabe:
Die Eingabe für das Programm ist ein zweidimensionales Array von Zeichenfolgen, das das Sudoku-Brett repräsentiert. Jede Zeichenfolge in der Matrix entspricht einer Zelle im Brett. Eine Ziffer von '1' bis '9' repräsentiert eine gefüllte Zelle, während der Punkt ('.') eine leere Zelle darstellt.
Ausgabe:
Die Ausgabe des Programms sollte ein boolescher Wert sein: 'true', wenn das gegebene Sudoku-Brett gültig ist, und 'false', wenn es ungültig ist.
Beispiele:
Beispiel 1:
Eingabe:
[
["5","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]
]
Ausgabe: true
Beispiel 2:
Eingabe:
[
["8","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]
]
Ausgabe: false
Erklärung: Im Beispiel 2 wurde die '5' in der oberen linken Ecke durch '8' ersetzt. Da es zwei '8' im oberen linken 3x3-Teilquadrat gibt, ist es ungültig.
Hinweise:
- Sie können annehmen, dass das gegebene Sudoku-Brett immer eine Größe von 9x9 hat.
- Jede Zeile und jede Spalte des Bretts hat eine Länge von 9.
- Jede Zelle des Bretts enthält entweder eine Ziffer von 1-9 oder einen Punkt ('.').
- Ihre Lösung sollte effizient sein und in der Lage sein, mit großen Eingaben umzugehen, da die Größe des Sudoku-Bretts variieren kann.