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 con 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 la misma fila, la misma columna o el mismo cuadro de 3 × 3, y false en caso contrario. Solo se comprueban las celdas llenas: no es necesario que el tablero tenga 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 ni caja 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
Cada fila, columna y cuadro contiene cada dígito como máximo una vez. La fila 4 (contando desde 0), .74..89.3, tiene un 7, un 4, un 8, un 9 y un 3 una vez cada uno, y lo mismo ocurre con los otros 26 grupos, así que la respuesta es true.

lock icon+16 pruebas ocultas al enviar

challenge icon

Para ir más allá

Generaliza la comprobación para un tablero de 16 × 16 con cajas de 4 × 4 y los símbolos del 1 al 9 y de la A a la G. ¿Qué números de tu código dependen del tamaño del tablero y en qué se convierte la fórmula de las cajas?

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

true