word search

来源:互联网 发布:关于茶的软件 编辑:程序博客网 时间:2024/06/02 05:26

题目如图:


解法代码(python):

class Solution(object):    def exist(self, board, word):        m = len(board)        if m<1:            return False        n = len(board[0])        if n<1:            return False        l = len(word)        if l<1:            return False        for i in range(m):            for j in range(n):                if board[i][j]==word[0]:                    if self.func(board,word,i,j,0):                        return True        return False        def func(self,board,word,i,j,position):        if position==len(word):            return True        if i<0 or i>=len(board) or j<0 or j>=len(board[0]):            return False        if board[i][j]!=word[position]:            return False        t = board[i][j]        board[i][j] = -1        ret = self.func(board,word,i-1,j,position+1) or self.func(board,word,i+1,j,position+1) or self.func(board,word,i,j-1,position+1) or self.func(board,word,i,j+1,position+1)        board[i][j] = t        return ret                

个人觉得最牛逼的地方在于

board[i][j] = -1
完美解决了方向的问题!