题解 | #矩阵中的路径#

矩阵中的路径

https://www.nowcoder.com/practice/2a49359695a544b8939c77358d29b7e6

class Solution:
    def hasPath(self , matrix: List[List[str]], word: str) -> bool:
        # write code here
        row = len(matrix)
        col = len(matrix[0])
        
        def dfs(i, j, k, visited):           #visisted已访问的坐标set(),当前符合长度
            if k == len(word):
                return True
            for x, y in [(1,0), (-1,0), (0,1), (0,-1)]:
                tmp_i = i + x
                tmp_j = j + y
                if 0<=tmp_i<row and 0<=tmp_j<col and (tmp_i,tmp_j) not in visited and matrix[tmp_i][tmp_j] == word[k]:
                    visited.add((tmp_i,tmp_j))
                    if dfs(tmp_i, tmp_j, k+1, visited):
                        return True                 #开始递归,如果最后k==len(word)则输出True,如果不行则回溯
                    visited.remove((tmp_i,tmp_j))
            return False
            
        for i in range(row):
            for j in range(col):
                if matrix[i][j] == word[0] and dfs(i, j, 1,{(i, j)}):   #找起点
                        return True
        return False

全部评论

相关推荐

05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求...:注意把武大标粗标大 本地你俩不是乱杀
实习进度记录
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务