美文网首页
Leetcode_79_单词搜索_hn

Leetcode_79_单词搜索_hn

作者: 1只特立独行的猪 | 来源:发表于2020-03-16 13:55 被阅读0次

题目描述

给定一个二维网格和一个单词,找出该单词是否存在于网格中。

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

示例

示例 1:

board =
[
  ['A','B','C','E'],
  ['S','F','C','S'],
  ['A','D','E','E']
]

给定 word = "ABCCED", 返回 true.
给定 word = "SEE", 返回 true.
给定 word = "ABCB", 返回 false.

解答方法

方法一:dfs回溯法

思路

https://leetcode-cn.com/problems/word-search/solution/zai-er-wei-ping-mian-shang-shi-yong-hui-su-fa-pyth/

代码

class Solution:
    def exist(self, board: List[List[str]], word: str) -> bool:
        directs = [[-1,0],[1,0],[0,-1],[0,1]]
        m = len(board)
        if m == 0:
            return False
        n = len(board[0])
        mark = [[False for _ in range(n)] for _ in range(m)]
        def backtrack(mark, x, y, word, index,board):
            if index == len(word) -1:
                return board[x][y] == word[index]
            if board[x][y] == word[index]:
                mark[x][y] = True
                for direct in directs:
                    cur_x = x + direct[0]
                    cur_y = y + direct[1]
                    if cur_x >=0 and cur_x < m and cur_y >= 0 and cur_y < n and not mark[cur_x][cur_y] and backtrack(mark, cur_x, cur_y, word, index+1, board):
                        return True
                mark[x][y] = False
            return False

        for i in range(m):
            for j in range(n):
                if backtrack(mark, i, j, word, 0, board):
                    return True
        return False

时间复杂度

O((m*n)^2)

空间复杂度

O(m*n)

相关文章

  • Leetcode_79_单词搜索_hn

    题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母...

  • hn[0]hn

    hn[1]hn

  • 单词搜索

    给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中...

  • 单词搜索

  • 单词搜索

    题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成...

  • 单词搜索

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/word...

  • leetcode212 单词搜索II

    题目 单词搜索II 暴力解法 暴力解法就是用leetcode79 单词搜索这题的搜索一个单词的dfs方法,挨个搜索...

  • 零基础学Web前端开发(2)

    今天回忆关于文字段落的标签写法, 标题标签: 文章中一级一级的标题都用标签表示...

  • Leetcode_127_单词接龙_hn

    题目描述 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 end...

  • Leetcode_1160_拼写单词_hn

    题目描述 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 ch...

网友评论

      本文标题:Leetcode_79_单词搜索_hn

      本文链接:https://www.haomeiwen.com/subject/kpfiehtx.html