您当前的位置: 首页 >  搜索

单词搜索(二维字符网格中)

IT之一小佬 发布时间:2021-10-20 22:05:25 ,浏览量:1

        给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。

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

示例 1:

输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
输出:true

示例 2:

输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"
输出:true

示例 3:

输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"
输出:false

示例代码1:

class Solution:
    def exist(self, board: List[List[str]], word: str) -> bool:
        row, col = len(board), len(board[0])
        
        def dfs(x, y, index):
            if board[x][y] != word[index]:
                return False
            if index == len(word) - 1:
                return True
            
            board[x][y] = '#'
            lst = [[1,0], [-1, 0], [0, 1], [0, -1]]
            for tmp in lst:
                nx, ny = x + tmp[0], y + tmp[1]
                if 0             
关注
打赏
1688896170
查看更多评论
0.0507s