1.题目分析
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character ‘.‘
.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
2.题目分析
根据note可以知道,这并不是个数独问题。只需要检查在每行每列及每个九宫格内数字是否有重复出现的即可
3.解题思路
分别检查每行每列每个九宫格的数字是否重复。
Python代码(251ms)
class Solution(object): def isValidSudoku(self, board): """ :type board: List[List[str]] :rtype: bool """ temp1=[] temp2=[] for i in range(0,9): temp1.append([]) for i in range(0,9): temp2.append([]) #temp1储存每列数字 for i in range(0,9): for j in range(0,9): temp1[i].append(board[j][i]) #temp2储存每个九宫格数字 k=0 for i in range(0,9,3): for j in range(0,9,3): for row in range(i,i+3): for col in range(j,j+3): temp2[k].append(board[row][col]) k+=1 print temp2 #开始检查是否满足题目要求 for i in range(0,9): if self.isValid(board[i])==False or self.isValid(temp1[i])==False or self.isValid(temp2[i])==False: return False return True #定义isValid函数检查是否合法 def isValid(self,nums): temp=[] for i in range(0,9): if nums[i] not in temp and nums[i]!=‘.‘: temp.append(nums[i]) continue else: if nums[i]==‘.‘: continue return False return True