The Sudoku board could be partially filled, where empty cells are filled with the character '.'.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
class Solution {
func isValidSudoku(_ board: [[Character]]) -> Bool {
for i in 0 ... 8 {
var rowSet = Set<Character>()
var colSet = Set<Character>()
var subBoxSet = Set<Character>()
let rowStart = (i / 3) * 3;
let colStart = (i % 3) * 3;
for j in 0 ... 8 {
if board[i][j] != "." {
if rowSet.contains(board[i][j]) {
return false
} else {
rowSet.insert(board[i][j])
}
}
if board[j][i] != "." {
if colSet.contains(board[j][i]) {
return false
} else {
colSet.insert(board[j][i])
}
}
if board[rowStart + j / 3][colStart + j % 3] != "." {
if subBoxSet.contains(board[rowStart + j / 3][colStart + j % 3]) {
return false
} else {
subBoxSet.insert(board[rowStart + j / 3][colStart + j % 3])
}
}
}
}
return true
}
}
Valid Sudoku
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- My code: 感觉这道题目就是体力活,一点意思都没有。有机会得去了解下, HashSet 的工作机制。还有,遍...