题目:
首次成功通过测试:
由于遍历了两次,运行时间过长,改进版如下:
class Solution:
def isValidSudoku(self, board):
"""
:type board: List[List[str]]
:rtype: bool
"""
unit_x = [set([]) for i in range(9)]
unit_y = [set([]) for i in range(9)]
unit_r = [set([]) for i in range(9)]
rep=True
for x in range(0,9):
for y in range(0,9):
if(board[x][y]=='.'):
continue
else:
x_y=int(board[x][y])
if x_y in unit_x[x]:
rep=False
break
else:
unit_x[x].add(x_y)
if x_y in unit_y[y]:
rep=False
break
else:
unit_y[y].add(x_y)
r=3*(x//3)+y//3
if x_y in unit_r[r]:
rep=False
break
else:
unit_r[r].add(x_y)
if(rep==False):
return rep
return rep