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=0for 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+=1print 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 Falsereturn 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])continueelse:if nums[i]=='.':continuereturn Falsereturn True