zoukankan      html  css  js  c++  java
  • 65、矩阵中的路径

    请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 

    class Solution:
        def exist(self, board: List[List[str]], word: str) -> bool:
            def isValid(i, j):
                return 0 <= i < m and 0 <= j < n
    
            def dfs(i, j, visited):
                if len(visited) >= len(word):
                    return True
                for dx, dy in delt:
                    x, y = i + dx, j + dy
                    if isValid(x, y) and (x, y) not in visited and word[len(visited)] == board[x][y]:
                        visited.add((x, y))
                        if dfs(x, y, visited):
                            return True
                        visited.remove((x, y))
                return False
                    
            m, n = len(board), len(board[0])
            delt = [[0, 1], [0, -1], [1, 0], [-1, 0]]
            for i in range(m):
                for j in range(n):
                    visited = set()
                    if board[i][j] == word[0]:
                        visited.add((i, j))
                        if dfs(i, j, visited):
                            return True
            return False
                    
  • 相关阅读:
    socket套接字 struct模块
    网络编程 OSI七层协议
    内置方法 eval | exec 元类 单例
    选课系统
    iOS清理缓存 2016-04-19
    iOS 蓝牙 技术
    iOS人脸识别
    iOS 指纹识别
    极光推送的初步配置及其使用
    iOS 加急审核
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13541725.html
Copyright © 2011-2022 走看看