|
| 1 | +# Coding Dojo |
| 2 | + |
| 3 | +**Guilda JEDI Incolume - Grupo Python Incolume** |
| 4 | + |
| 5 | +- _[Seja membro da Guilda JEDI Incolume](https://discord.gg/eBNamXVtBW)_ |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Problema |
| 10 | + |
| 11 | +**Sudoku válido** |
| 12 | + |
| 13 | +Determine se um 9 x 9tabuleiro de Sudoku é válido. Apenas as células preenchidas precisam ser validadas de acordo com as seguintes regras : |
| 14 | + |
| 15 | +1. Cada linha deve conter os dígitos 1-9 sem repetição. |
| 16 | +1. Cada coluna deve conter os dígitos 1-9 sem repetição. |
| 17 | +1. Cada uma das nove 3 x 3 subcaixas da grelha deve conter os dígitos 1-9 sem repetição. |
| 18 | + |
| 19 | + |
| 20 | +Observação: |
| 21 | + |
| 22 | +- Um tabuleiro de Sudoku (parcialmente preenchido) pode ser válido, mas não é necessariamente solucionável. |
| 23 | +- Apenas as células preenchidas precisam ser validadas de acordo com as regras mencionadas. |
| 24 | + |
| 25 | + |
| 26 | +## Exemplos |
| 27 | + |
| 28 | +Entrada: |
| 29 | +``` |
| 30 | +Exemplo 1: |
| 31 | +
|
| 32 | +placa = |
| 33 | +[["5","3",".",".","7",".",".",".","] |
| 34 | +,["6",".",".","1","9","5",".",".","] |
| 35 | +,[".","9","8",".",".",".","6","."] |
| 36 | +,["8",".",".",".","6",".",".","3"] |
| 37 | +,["4",".",".","8",".","3",".",".","1"] |
| 38 | +,["7",".",".",".","2",".",".","6"] |
| 39 | +,[".","6",".",".",".","2","8","."] |
| 40 | +,[".",".",".","4","1","9",".",".","5"] |
| 41 | +,[".",".",".",".","8",".","7","9"]] |
| 42 | +``` |
| 43 | +Saída: verdadeiro |
| 44 | + |
| 45 | +Exemplo 2: |
| 46 | + |
| 47 | +Entrada: |
| 48 | +``` |
| 49 | +placa = |
| 50 | +[["8","3",".",".","7",".",".",".","] |
| 51 | +,["6",".",".","1","9","5",".",".","] |
| 52 | +,[".","9","8",".",".",".","6","."] |
| 53 | +,["8",".",".",".","6",".",".","3"] |
| 54 | +,["4",".",".","8",".","3",".",".","1"] |
| 55 | +,["7",".",".",".","2",".",".","6"] |
| 56 | +,[".","6",".",".",".","2","8","."] |
| 57 | +,[".",".",".","4","1","9",".",".","5"] |
| 58 | +,[".",".",".",".","8",".","7","9"]] |
| 59 | +``` |
| 60 | +Saída: false |
| 61 | + |
| 62 | + Explicação: |
| 63 | + |
| 64 | + Igual ao Exemplo 1, exceto com o 5 no canto superior esquerdo sendo modificado para 8 . Como há dois 8 na subcaixa 3x3 superior esquerda, é inválido. |
| 65 | + |
| 66 | + |
| 67 | +Restrições: |
| 68 | +- |
| 69 | + class Solution: |
| 70 | + def isValidSudoku(self, board: List[List[str]]) -> bool: |
| 71 | + |
| 72 | +- board.length == 9 |
| 73 | +- board[i].length == 9 |
| 74 | +- board[i][j]é um dígito 1-9 ou '.' |
| 75 | + |
| 76 | + |
| 77 | +<details> |
| 78 | + <summary>Spoiler?</summary> |
| 79 | + Considerar em caso de fatoração: |
| 80 | + |
| 81 | + > modo pythônico |
| 82 | + > sem condicionais |
| 83 | + > estruturas performáticas |
| 84 | + > redução de complexidade ciclomática |
| 85 | + > análise assintótica de algoritmos (big O) |
| 86 | + |
| 87 | +</details> |
| 88 | + |
| 89 | +N/A - Exemplos de solução e resposta do problema. Geralmente utilizado para validar os testes do TDD. |
| 90 | + |
| 91 | +## Artefatos |
| 92 | + |
| 93 | +- [dojo](__init__.py) |
| 94 | +- [tests](test_20241128.py) |
| 95 | + |
| 96 | + |
| 97 | +## Referências |
| 98 | +- [Sudoku válido](https://leetcode.com/problems/valid-sudoku/) |
| 99 | +N/A - Referências para o dojo, o problema ou para elicidações extras. |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +Copyright © **incolume.com.br** since 2010 |
0 commit comments