题目链接
https://leetcode.cn/problems/sudoku-solver/description/文章来源地址https://www.toymoban.com/news/detail-705560.html
代码
class Solution:
def solveSudoku(self, board: List[List[str]]) -> None:
"""
Do not return anything, modify board in-place instead.
"""
self.backtracking(board)
def backtracking(self, board):
for i in range(len(board)):
for j in range(len(board[0])):
if board[i][j] != '.':
continue
for k in range(1, 10):
if self.is_valid(i, j, k, board):
board[i][j] = str(k)
if self.backtracking(board): return True
board[i][j] = '.'
return False
return True
def is_valid(self, row, col, val, board):
for i in range(9):
if board[row][i] == str(val):
return False
for i in range(9):
if board[i][col] == str(val):
return False
start_row = (row // 3) * 3
start_col = (col // 3) * 3
for i in range(start_row, start_row + 3):
for j in range(start_col, start_col + 3):
if board[i][j] == str(val):
return False
return True
文章来源:https://www.toymoban.com/news/detail-705560.html
到了这里,关于LeetCode(力扣)37. 解数独Python的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!