Menu
CoddyTech

Valid Sudoku

MédioHashingpython iconjava iconcpp iconc iconjs icon+10

Você recebe um tabuleiro de Sudoku 9 × 9 como board, uma lista de 9 strings com 9 caracteres cada, uma string por linha. Cada caractere é um dígito de 1 a 9 ou . para uma célula vazia. Retorne true se nenhum dígito aparecer duas vezes na mesma linha, na mesma coluna ou no mesmo bloco 3 × 3, e false caso contrário. Apenas as células preenchidas são verificadas: o tabuleiro não precisa ser solucionável.

Função

isValidSudoku(board: string-array) → boolean
boardstring-array
9 strings de 9 caracteres, uma por linha, com dígitos de 1 a 9 e . para uma célula vazia
Retornaboolean
verdadeiro se nenhuma linha, coluna ou caixa 3 × 3 repetir um dígito; falso caso contrário

Restrições

  • board.length == 9 e board[i].length == 9
  • board[i][j] é um dígito de 1 a 9 ou .
  • O tabuleiro pode ser impossível de completar; apenas as repetições entre as células preenchidas importam.

Exemplos

Entrada
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Saída
true
Explicação
Cada linha, coluna e caixa contém cada dígito no máximo uma vez. A linha 4 (contando a partir de 0), .74..89.3, tem 7, 4, 8, 9 e 3 uma vez cada, e o mesmo vale para os outros 26 grupos, então a resposta é true.

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Generalize a verificação para um tabuleiro 16 × 16 com caixas 4 × 4 e os símbolos de 1 a 9 e de A a G. Quais números no seu código dependem do tamanho do tabuleiro, e em que se transforma a fórmula da caixa?

Redefinir código
def isValidSudoku(board):
    # Escreva o código aqui
Casos de teste

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