feat: valid sudoku

This commit is contained in:
2025-12-17 18:29:19 -05:00
parent 1e2700a2f2
commit 647b79a050
2 changed files with 102 additions and 0 deletions

46
pkg/valid_sudoku/main.go Normal file
View File

@@ -0,0 +1,46 @@
package valid_sudoku
type Multiset map[byte]bool
func (m Multiset) Add(b byte) bool {
if b == '.' {
return true
}
exists := m[b]
m[b] = true
return !exists
}
func IsValidSudoku(board [][]byte) bool {
for i := range 3 {
for j := range 3 {
box := Multiset{}
for x := range 3 {
for y := range 3 {
if !box.Add(board[3*j+y][3*i+x]) {
return false
}
}
}
}
}
for i := range 9 {
row := Multiset{}
column := Multiset{}
for j := range 9 {
if !row.Add(board[i][j]) {
return false
}
if !column.Add(board[j][i]) {
return false
}
}
}
return true
}