Python simple dfs solution
def exist(self, board, word):\n        if not word:\n            return True\n        if not board:\n            return False\n        for i in range(len(board)
    def exist(self, board, word):\n        if not word:\n            return True\n        if not board:\n            return False\n        for i in range(len(board)):\n            for j in range(len(board[0])):\n                if self.exist_helper(board, word, i, j):\n                    return True\n        return False\n                        \n    def exist_helper(self, board, word, i, j):\n        if board[i][j] == word[0]:\n            if not word[1:]:\n                return True\n            board[i][j] = " " # indicate used cell\n            # check all adjacent cells\n            if i > 0 and self.exist_helper(board, word[1:], i-1, j):\n                return True\n            if i < len(board)-1 and self.exist_helper(board, word[1:], i+1, j):\n                return True\n            if j > 0 and self.exist_helper(board, word[1:], i, j-1):\n                return True\n            if j < len(board[0])-1 and self.exist_helper(board, word[1:], i, j+1):\n                return True\n            board[i][j] = word[0] # update the cell to its original value\n            return False\n        else:\n            return False
['Depth-First Search', 'Python']