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 }