leetcode 有效的數獨 Python
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。
- 數字
1-9
在每一行只能出現一次。 - 數字
1-9
在每一列只能出現一次。 - 數字
1-9
在每一個以粗實線分隔的3x3
宮內只能出現一次。
上圖是一個部分填充的有效的數獨。
數獨部分空格內已填入了數字,空白格用 '.'
表示。
示例 1:
輸入: [ ["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
示例 2:
輸入: [ ["8","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"] ] 輸出:false 解釋: 除了第一行的第一個數字從 5 改為 8 以外,空格內其他數字均與 示例1 相同。 但由於位於左上角的 3x3 宮內有兩個 8 存在, 因此這個數獨是無效的。
說明:
- 一個有效的數獨(部分已被填充)不一定是可解的。
- 只需要根據以上規則,驗證已經填入的數字是否有效即可。
- 給定數獨序列只包含數字
1-9
和字元'.'
。
- 給定數獨永遠是
9x9
形式的。
思路:逐行逐列逐塊判斷。class Solution: def isValidSudoku(self, board): """ :type board: List[List[str]] :rtype: bool """ s = set() for i in range(9): for j in range(9): if board[i][j] != '.' and board[i][j] in s: return False else: s.add(board[i][j]) s.clear() for k in range(9): if board[k][i] != '.' and board[k][i] in s: return False else: s.add(board[k][i]) s.clear() for i in range(0,9,3): for j in range(0,9,3): for k in range(i,i+3): for p in range(j,j+3): if board[k][p] != '.' and board[k][p] in s: return False else: s.add(board[k][p]) s.clear() return True
相關推薦
36.有效的數獨-Python-LeetCode
一、題目 二、解法 結語 一、題目 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現
leetcode 有效的數獨 Python
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1-9 在每一行只能出現一次。數字 1-9 在每一列只能出現一次。數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。上圖是一個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 '.' 表示。示例
leetcode 36. 有效的數獨 (python)
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字 1-9 在每一行只能出現一次。數字 1-9 在每一列只能出現一次。數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。上圖是一個部分填充的有效的數獨。數獨部分空格內已填入了
Leetcode演算法——36、判斷有效數獨
判斷一個 9*9 的數獨面板是否是有效的。 如果已經被填充的數字滿足以下條件,則說明是有效的: 每一行只能包含無重複數字1-9 每一列只能包含無重複數字1-9 每一個 3*3 的子面板只能包含無重複數字1-9 備註: 一個有效的數獨面板(
每日一題 LeetCode 有效的數字 Python實現
字典 true false 如果 有效 solution code del append 有效的數字(簡單題) class Solution:def isValid(self, s):""":type s: str:rtype: bool&qu
leetcode 兩數之和 python
class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] "
leetcode兩數之和python
在編寫leecode上的演算法第一題“兩數之和”時,遇到了一些問題,如下: 1.引數丟失 >>>Solution.twosum([2,3,4,5],8) TypeError: twosum() missing 1 required positional
【leetcode】有效的數獨(Python解答)
題目: 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個
LeetCode題目--有效的數獨(python/Java實現)
題目 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以
swift 有效的數獨 - LeetCode
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的&nbs
LeetCode 解題筆記——有效的數獨
題目描述:判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔
leetcode-36-有效的數獨
bool isValidSudoku(vector<vector<char>>& board) { int row[9][9] = {0}, col[9][9] = {0}, box[9][9] = {0}; for (int i =
Leetcode題庫——36.有效的數獨
@author: ZZQ @software: PyCharm @file: leetcode36_isValidSudoku.py @time: 2018/11/19 19:27 要求:判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現
Leetcode 有效的數獨(c++) 清晰易懂
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。 上圖是一個部分填充的有效的數獨。 數獨部分空格內
Leetcode演算法Java全解答--36. 有效的數獨
Leetcode演算法Java全解答–36. 有效的數獨 文章目錄 Leetcode演算法Java全解答--36. 有效的數獨 題目 想法 結果 總結 程式碼 我的答案 大佬們的答案
Leetcode 的強大之處 演算法題解 in Swift ( 有效的數獨 , 36 ) 及其 Code Review
Leetcode 的強大之處,挺多的。 本文寫的是,其強大的討論區。 討論區裡面,有各種具有啟發性的程式碼。 (換句話說,就是有很強的程式碼。看了,覺得腦洞大開,大神們把語言的語法特性發揮到了極致) 裡面有各種常見語言的實現 ( 這裡指 Leetcode 主站的, 中文站點的同一功能弱了一點 )
leetcode-有效的數獨
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。 上圖是一個部分填充的有效的數獨。 數獨部分空格內已
Leetcode演算法題(C語言)11--有效的數獨
題目:有效的數獨 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 1 數字 1-9 在每一行只能出現一次。 2 數字 1-9 在每一列只能出現一次。 3 數
【LeetCode】36. 有效的數獨
題目描述 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗
leetcode題庫——有效的數獨
題目描述: 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。 上圖是一個部分填充的有