leetcode中等79单词搜索

Posted qq_40707462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等79单词搜索相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
思路:回溯
用visited数组记录方格是否被遍历过,过后还原

class Solution:
    def exist(self, board: List[List[str]], word: str) -> bool:
        m,n=len(board),len(board[0])
        visited=[]
        directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]

        def dfs(i,j,index):
            if board[i][j]!=word[index]:
                return False
            if index==len(word)-1 :
                return True

            for di,dj in directions:
                newi, newj = i + di, j + dj
                if 0 <= newi < m and 0 <= newj < n and [newi, newj] not in visited:
                    visited.append([i, j])
                    if dfs(newi,newj,index+1):
                        return True
                    visited.pop()


        for i in range(m):
            for j in range(n):
                if dfs(i,j,0):
                    return True
        return False

以上是关于leetcode中等79单词搜索的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 每日一题 79. 单词搜索

LeetCode 79. 单词搜索c++/java详细题解

[JavaScript 刷题] 搜索 - 单词搜索, leetcode 79

[JavaScript 刷题] 搜索 - 单词搜索, leetcode 79

[JavaScript 刷题] 搜索 - 单词搜索, leetcode 79

[LeetCode] 79. 单词搜索