
Valid sudoku
這一題是要驗證數獨的題目, 是否有符合規則(不代表這個題目解的出來)
所以要驗證數獨的每一行, 列, 3×3小格子是否有重複的數字出現
解題脈絡
因為是要驗證行, 列, 獨立的3×3小格子, 所以分別把取得的數字, 放入對應的陣列中
只要陣列內的數字沒有重複, 代表符合規則
寫法
func isValidSudoku(board [][]byte) bool {
var row, col, subBox [9][9]bool
for seq1, rowData := range board {
for seq2, colData := range rowData {
if colData == '.' {
continue
}
num := int(colData) - 49
k := seq1/3*3 + seq2/3
if row[seq1][num] || col[seq2][num] || subBox[k][num] {
return false
}
row[seq1][num], col[seq2][num], subBox[k][num] = true, true, true
}
}
return true
}
以上是給自己做個紀錄