@author: zzq
@software: pycharm
@file: leetcode36_isvalidsudoku.py
@time: 2018/11/19 19:27
要求:判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。
數字 1-9 在每一行只能出現一次。
數字 1-9 在每一列只能出現一次。
數字 1-9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。
思路: 純暴力解決。
class solution():
def __init__(self):
pass
def isvalidsudoku(self, board):
""":type board: list[list[str]]
:rtype: bool
"""row_list = [0] * 9
col_list = [0] * 9
for i in range(9):
for j in range(9):
if board[i][j] != '.':
if col_list[int(board[i][j])-1] == 0:
col_list[int(board[i][j])-1] = 1
else:
return false
if board[j][i] != '.':
if row_list[int(board[j][i])-1] == 0:
row_list[int(board[j][i])-1] = 1
else:
return false
row_list = [0] * 9
col_list = [0] * 9
rect_list = [0] * 9
for k in range(3):
for t in range(3):
for i in range(3):
for j in range(3):
if board[k*3 + i][t*3 + j] != '.':
if rect_list[int(board[k*3 + i][t*3 + j])-1] == 0:
rect_list[int(board[k*3 + i][t*3 + j])-1] = 1
else:
return false
rect_list = [0] * 9
return true
leetCode題庫36 有效的數獨
題目 判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表...
LeetCode 36 有效的數獨
題目鏈結 題目描述 判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字...
LeetCode 36 有效的數獨
public boolean isvalidsudoku char board 檢查行 if isparticallyvalid board,i,i,0,8 檢查塊 for int i 0 i 3 i return true 把要檢查的值存入到set中,每次向set中新增值的時候,如果失敗則證明該值...