陣列 10 有效的數獨

2021-09-02 02:42:02 字數 1490 閱讀 7961

判斷乙個9x9的數獨是否有效。根據以下規則,驗證已經填入的數字是否有效。

數字1-9在每一行只能出現一次;

數字1-9在每一列只能出現一次;

數字1-9在每乙個以促使線分隔3x3宮內只能出現一次。

數獨部分空格內已填入了數字,空格用「.」表示:

示例:

輸入:

[ ["5","3",".",".","7",".",".",".","."],

["6",".",".","1","9","5",".",".","."],

[".","9","8",".",".",".",".","6","."],

["8",".",".",".","6",".",".",".","3"],

["4",".",".","8",".","3",".",".","1"],

["7",".",".",".","2",".",".",".","6"],

[".","6",".",".",".",".","2","8","."],

[".",".",".","4","1","9",".",".","5"],

[".",".",".",".","8",".",".","7","9"]

] 輸出:true

思路:檢查每一行、每一列、每乙個3x3宮是否符合不存在重複值,若符合,則將該元素新增進去。

class

solution

:def

isvalidsudoku

(self, board)

:#沒有必要用dict,我們只關係某個數字有沒有出現過

row =[[

]for i in

range(9

)]col =[[

]for i in

range(9

)]cell =[[

]for i in

range(9

)]#enumerate()函式:用於將乙個可遍歷的資料物件

#(如列表、元組或字串)組合為乙個索引序列,

#同時列出資料索引和資料,一般用在for迴圈中。

for i, row in

enumerate

(board)

:for j, num in

enumerate

(row)

:if num !=

'.':

#3x3宮的確立

k =(i //3)

*3+ j //

3#拼接3個list

if num in row[i]

+ col[j]

+ cell[k]

:return

false

else

: row[i]

col[j]

cell[k]

return

true

LeetCode陣列 有效的數獨

有效的數獨 判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格...

有效的數獨

判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示...

有效的數獨

題目 判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。說明上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用...