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 em uma linha, coluna ou caixa 3 × 3, e false caso contrário. Apenas as células preenchidas são verificadas: o tabuleiro não precisa ter solução.

Função

isValidSudoku(board: string-array) → boolean
boardstring-array
9 sequências de 9 caracteres, uma por linha, dígitos de 1 a 9 e . para uma célula vazia
Retornaboolean
true se nenhuma linha, coluna ou caixa 3 × 3 repetir um dígito, false 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
A linha 4, contando a partir de 0, .74..89.3, tem 7, 4, 8, 9 e 3 uma vez cada, e nenhum dos outros 26 grupos repete um dígito.
challenge icon

Para ir além

Como você verificaria um tabuleiro 16 × 16 com caixas 4 × 4 e os símbolos de 1 a 9 e de A a G? Em que se transforma a fórmula das caixas?

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

Teste #1

Teste #2

Teste #3

Argumento

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

Saída Esperada

true