classSolution(object):defsolve(self,board):""" :type board: List[List[str]] :rtype: void Do not return anything, modify board in-place instead. """ifnotboard:returnforiinrange(1,len(board)-1):# begin from top left 1, bottom right -1forjinrange(1,len(board[0])-1):ifself.dfs(board,i,j):board[i][j]='X'returnboarddefdfs(self,board,i,j):ifi>len(board)-1ori<0orj>len(board[0])-1orj<0:returnFalseifboard[i][j]=='X':returnTrueboard[i][j]='X'# set the begin to 'X' temporarilyres=self.dfs(board,i+1,j)andself.dfs(board,i,j+1)andself.dfs(board,i-1,j)andself.dfs(board,i,j-1)board[i][j]='O'# return it backreturnres
近期评论