关注
迷宫问题:把传入的矩阵matrix,扩成每行每列各三个matrix(共9个)的大矩阵,从最左上角的小matrix中的‘S’出发,沿可走的路径寻找,如果能找找到其它的‘S’,则是通的,s出发就能到无穷多位置 import numpy as np
def s_location(matrix):#定位S在矩阵中位置
for i in range(len(matrix)):
if 'S' in matrix[i]:
j = matrix[i].index('S')
return [i, j]
def findanother_S(matrix, i, j):#在大矩阵中沿可通过路径寻找其它S,若找到则说明是连通的
if i<0 or i>=len(matrix) or j<0 or j>= len(matrix) or matrix[i][j] == '#':
return False
if matrix[i][j] == 'S':
return True
if findanother_S(matrix, i + 1, j):
print(i+1, j)
return True
if findanother_S(matrix, i - 1, j):
print(i-1, j)
return True
if findanother_S(matrix, i, j + 1):
print(i, j+1)
return True
if findanother_S(matrix, i, j - 1):
print(i, j-1)
return True
return False
def isok(matrix):#判断matrix矩阵中S是否可以到达无穷多位置
i, j = s_location(matrix) # i,j
matrix = np.array(matrix)#把matrix变成每行、每列各3个(共九个)matrix的大矩阵
matrix = np.concatenate([matrix] * 3, axis=1)
matrix = np.concatenate([matrix] * 3, axis=0)
matrix[i][j] = '#'
print(matrix)
if findanother_S(matrix, i + 1, j):
print(i+1,j)
return True
if findanother_S(matrix, i - 1, j):
print(i-1,j)
return True
if findanother_S(matrix, i, j + 1):
print(i,j+1)
return True
if findanother_S(matrix, i, j - 1):
print(i,j-1)
return True
print(i,j)
return False
if __name__== '__main__':
matrix1 = [['S', '#'], ['#', '.']]
matrix2 = [['.', '.', '.'], ['#', '#', '#'], ['#', 'S', '#']]
result = isok(matrix2)
print(result)
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-17 18:14
华南师范大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
11162次浏览 198人参与
# 帆软软件工作体验 #
10664次浏览 50人参与
# 软开人,秋招你打算投哪些公司呢 #
177129次浏览 1334人参与
# 秋招被挂春招仍然能投的公司 #
22266次浏览 216人参与
# 机械制造2024笔面经 #
1515472次浏览 12994人参与
# 1月小结:你过的开心吗? #
5444次浏览 131人参与
# 实习,不懂就问 #
157782次浏览 1380人参与
# AI求职实录 #
17920次浏览 405人参与
# 没关系,至少我的__很曼妙 #
12908次浏览 225人参与
# 今年春招是金一银二嘛? #
30207次浏览 286人参与
# 秋招被确诊为…… #
286706次浏览 1595人参与
# 聊聊你的职场新体验 #
316832次浏览 1857人参与
# 快手年终开大包 #
4102次浏览 57人参与
# 抛开难度不谈,你最想去哪家公司? #
16973次浏览 242人参与
# 为什么有人零实习也能进大厂? #
16098次浏览 277人参与
# 你的第一家实习公司是什么档次? #
13849次浏览 177人参与
# 如果能重来,就业or读研你选哪个? #
271451次浏览 2611人参与
# 赚钱的意义在这一刻具象化 #
12118次浏览 240人参与
# 考研人,我有话说 #
164152次浏览 1243人参与
# Prompt分享 #
18836次浏览 453人参与

