Menu
CoddyTech

Valid Sudoku

MedioHashingpython iconjava iconcpp iconc iconjs icon+10

Recibes un tablero de Sudoku de 9 × 9 como board, una lista de 9 cadenas de 9 caracteres cada una, una cadena por fila. Cada carácter es un dígito del 1 al 9 o . para una celda vacía. Devuelve true si ningún dígito aparece dos veces en una fila, una columna o un bloque de 3 × 3, y false en caso contrario. Solo se comprueban las celdas llenas: el tablero no tiene que tener solución.

Función

isValidSudoku(board: string-array) → boolean
boardstring-array
9 cadenas de 9 caracteres, una por fila, dígitos del 1 al 9 y . para una celda vacía
Devuelveboolean
true si ninguna fila, columna o cuadro de 3 × 3 repite un dígito; false en caso contrario

Restricciones

  • board.length == 9 y board[i].length == 9
  • board[i][j] es un dígito del 1 al 9 o .
  • Puede que sea imposible completar el tablero; solo importan las repeticiones entre las celdas rellenadas.

Ejemplos

Entrada
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Salida
true
Explicación
La fila 4, contando desde 0, .74..89.3, contiene 7, 4, 8, 9 y 3 una vez cada uno, y ninguno de los otros 26 grupos repite un dígito tampoco.
challenge icon

Para ir más allá

¿Cómo comprobarías un tablero de 16 × 16 con bloques de 4 × 4 y los símbolos del 1 al 9 y de la A a la G? ¿En qué se convierte la fórmula del bloque?

Restablecer código
def isValidSudoku(board):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]

Salida Esperada

true