swift 有效的數獨 - LeetCode
阿新 • • 發佈:2018-11-07
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。
- 數字
1-9
在每一行只能出現一次。 - 數字
1-9
在每一列只能出現一次。 - 數字
1-9
在每一個以粗實線分隔的3x3
宮內只能出現一次。
上圖是一個部分填充的有效的數獨。
數獨部分空格內已填入了數字,空白格用 '.'
表示。
說明:
- 一個有效的數獨(部分已被填充)不一定是可解的。
- 只需要根據以上規則,驗證已經填入的數字是否有效即可。
- 給定數獨序列只包含數字
1-9
'.'
。 - 給定數獨永遠是
9x9
形式的。
class Solution { func isValidSudoku(_ board: [[Character]]) -> Bool { for i in 0..<9 { var row = [Character: Int]() var col = [Character: Int]() var cube = [Character: Int]() for j in 0..<9 { //行 if board[i][j] != "." { if row[board[i][j]] == 1 { return false }else { row[board[i][j]] = 1 } } //列 if board[j][i] != "." { if col[board[j][i]] == 1 { return false }else { col[board[j][i]] = 1 } } //宮 let cubeX = 3 * (i/3) + j/3 let cubeY = 3 * (i%3) + j%3 if board[cubeX][cubeY] != "." { if cube[board[cubeX][cubeY]] == 1 { return false }else { cube[board[cubeX][cubeY]] = 1 } } } } return true } }