https://leetcode.cn/problems/valid-sudoku/description/?envType=study-plan-v2&envId=top-interview-150

 

复制代码
func isValidSudoku(board [][]byte) bool {
    for _, nums := range board {
        numMap := make(map[byte]bool)
        for _, num := range nums {
            if num == '.' {
                continue
            }
            if numMap[num] {
                return false
            }
            numMap[num] = true
        }
    }

    for i := 0; i < 9; i++ {
        numMap := make(map[byte]bool)
        for _, bytes := range board {
            if bytes[i] == '.' {
                continue
            }
            if numMap[bytes[i]] {
                return false
            }
            numMap[bytes[i]] = true
        }
    }

    for h := 0; h < 3; h++ {
        for w := 0; w < 3; w++ {
            numMap := make(map[byte]bool)
            for i := h * 3; i < (h+1)*3; i++ {
                for j := w * 3; j < (w+1)*3; j++ {
                    if board[i][j] == '.' {
                        continue
                    }
                    if numMap[board[i][j]] {
                        return false
                    }
                    numMap[board[i][j]] = true
                }
            }
        }
    }

    return true
}
复制代码