题目:

36Valid Sudoku

Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:

  1. Each row must contain the digits 1-9 without repetition.
  2. Each column must contain the digits 1-9 without repetition.
  3. Each of the 9 3x3 sub-boxes of the grid must contain the digits 1-9 without repetition.


算法思路:

    判断每行每列每个九宫格是否出现重复数字:设立一个列表,用于标记1-9数字出现的次数,出现的时候,在列表中对应的索引处加一,同时判断若该数字出现次数超过一次,则返回flase.  如果每行每列每个九宫格都没有重复数字,则返回true。


代码展示:

def isValidSudoku(self, board):
"""
:type board: List[List[str]]
:rtype: bool
"""
temp = []
for i in range(10):
temp.append(0)


#判断每行是否有重复数字
for i in board:
tmp = temp[::]
for j in range(9):
if i[j] != '.':
tmp[int(i[j] )] += 1
if tmp[int(i[j])] > 1:
return False
#判断每列是否有重复数字
for j in range(9):
tmp = temp[::]
for i in range(9):
if board[i][j] != '.':
tmp[int(board[i][j] )] += 1
if tmp[int(board[i][j] )] > 1:
return False

#判断每个九宫格是否有重复数字
for i in range(3):
i *= 3
for j in range(3):
j *= 3
tmp = temp[::]
for k in range(i, 3 + i):
for l in range(j,j+3):
if board[k][l] != '.':
tmp[int(board[k][l])] += 1
if tmp[int(board[k][l])] > 1:
return False
return True

结果展示:

第九周第二次作业


相关文章:

  • 2021-05-29
  • 2021-12-18
猜你喜欢
  • 2021-07-18
  • 2021-04-25
  • 2021-10-20
  • 2021-08-28
  • 2021-09-16
  • 2021-04-06
  • 2021-06-23
相关资源
相似解决方案