zoukankan      html  css  js  c++  java
  • 力扣36题 数独

    import time
    class Solution:
        def isValidSudoku(self, board):
            def isvalid(board, row, col, c):                                                    #操作是否合格
                for i in range(9):
                    if board[i][col] != '.' and board[i][col] == c:  # row                      #判断这一行的数据
                        return False
                    if board[row][i] != '.' and board[row][i] == c:  # col                      #判断这一列的数据
                        return False
                    if (board[3 * (row // 3) + i // 3][3 * (col // 3) + i // 3] != '.') and (   #判断每个小隔间的3*3
                            board[3 * (row // 3) + i // 3][3 * (col // 3) + i // 3] == c):
                        return False
                return True
    
            if not board or len(board) <= 0: return             #判空,board是否为空
            for i in range(len(board)):                         #遍历行
                for j in range(len(board[i])):                  #遍历列
                    if board[i][j] == '.':                      #如果该位置是空,则进入添加数据
                        for c in range(1,10):                   #遍历添加的数据1-9
                            if isvalid(board, i, j, str(c)):         #判断是否合格
                                board[i][j] = str(c)            #如果合格,则将其加入
                                if self.isValidSudoku(board):   #递归调用
                                    return True                 #
                                else:
                                    board[i][j] = '.'           #不符合就回溯添加‘.’
                        return False
            return True
        def printBoard(self,board):
            for i in range(len(board)):
                for j in range(len(board[i])):
                    print(board[i][j],end=',')
                print()
    if __name__ == '__main__':
        time1 = time.time()
        board = [
      ["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"]
    ]
        solution = Solution()
        result =solution.isValidSudoku(board)
        solution.printBoard(board)
        time2 = time.time()
        print('run time:',time2-time1)
  • 相关阅读:
    PHP之get请求用php脚本实现
    PHP之download
    PHP之缩略图
    PHP之upload
    文本域<textarea>将 替换成换行
    JSON中获取变量key的值
    emap表格checkbox属性默认勾选
    读取ORACLE数据库中BOLB形式数据在前端预览
    oracle常用语法
    批量删除本地仓库未下载完成的jar文件
  • 原文地址:https://www.cnblogs.com/missidiot/p/11452750.html
Copyright © 2011-2022 走看看