博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode]Sudoku Solver @ Python
阅读量:6550 次
发布时间:2019-06-24

本文共 1335 字,大约阅读时间需要 4 分钟。

原题地址:https://oj.leetcode.com/problems/sudoku-solver/

题意:

Write a program to solve a Sudoku puzzle by filling the empty cells.

Empty cells are indicated by the character '.'.

You may assume that there will be only one unique solution.

A sudoku puzzle...

 

...and its solution numbers marked in red.

解题思路:使用dfs来解决问题。

代码:

class Solution:    # @param board, a 9x9 2D array    # Solve the Sudoku by modifying the input board in-place.    # Do not return any value.    def solveSudoku(self, board):        def isValid(x,y):            tmp=board[x][y]; board[x][y]='D'            for i in range(9):                if board[i][y]==tmp: return False            for i in range(9):                if board[x][i]==tmp: return False            for i in range(3):                for j in range(3):                    if board[(x/3)*3+i][(y/3)*3+j]==tmp: return False            board[x][y]=tmp            return True        def dfs(board):            for i in range(9):                for j in range(9):                    if board[i][j]=='.':                        for k in '123456789':                            board[i][j]=k                            if isValid(i,j) and dfs(board):                                return True                            board[i][j]='.'                        return False            return True        dfs(board)

 

转载地址:http://gauco.baihongyu.com/

你可能感兴趣的文章
iOS 中json解析数据出现中文乱码的问题
查看>>
spring工程在eclipse 运行报错:找不到ContextLoaderListener
查看>>
java连接AD域
查看>>
常见下载节点
查看>>
linux: bash登录的显示信息设置以及环境配置文件.
查看>>
Spring boot环境搭建(二)- 代码分离、日志文件配置
查看>>
搭建2008 R2 IIS网络负载平衡
查看>>
Java动态代理学习1——静态代理
查看>>
node.js学习笔记之正则表达式
查看>>
hijack.c
查看>>
使用ACL匹配奇偶网络号及IP地址
查看>>
ibatis快速入门(一)
查看>>
四、基于802.1x+AD+NPS+DHCP动态下发VLAN配置 (第4篇、添加角色DHCP服务器并配置)...
查看>>
linux基础命令学习之ls(1)
查看>>
巧用windows批处理,实现简易邮件群发功能
查看>>
SAMBA
查看>>
同事联系方式备份脚本编写
查看>>
gulp构建前端工程
查看>>
标题 php学习遇到的问题
查看>>
HBASE之RowKey排序解析
查看>>