========坚持30天刷leetcode=====
题目链接:https://leetcode-cn.com/problems/valid-sudoku/
分析:
感觉这题没什么好讲的,把九宫格画一画,注意下【下标的关系】,基本就可以写出来。
但是用了比较多的循环结构,耗费的时间应该比较多,但还能接受吧。。看了分布表靠前的代码,大多适用字典表实现,然后复制下来执行了一下,发现用时也差不多。
代码:
class Solution:
def isValidSudoku(self, board):
alist=[3,6,9]
for i in range(9):
for j in range(9):
if board[i][j]!='.':
if i!=8:
for k in range(i+1,9):
if board[k][j]==board[i][j]:
return False
if j!=8:
for h in range(j+1,9):
if board[i][h]==board[i][j]:
return False
for x in range(i+1,alist[i//3]):
for y in range(alist[j//3]-3,alist[j//3]):
if board[x][y]==board[i][j]:
return False
return True