关注
迷宫问题:把传入的矩阵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
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
344029次浏览 3300人参与
# 我的实习求职记录 #
6079534次浏览 83624人参与
# 北方华创开奖 #
39346次浏览 408人参与
# 地方国企笔面经互助 #
4904次浏览 13人参与
# 职场吐槽大会 #
89873次浏览 740人参与
# 选完offer后,你后悔学本专业吗 #
22560次浏览 161人参与
# 百度开奖 #
194420次浏览 1240人参与
# 运营商笔面经互助 #
92108次浏览 1330人参与
# ai智能作图 #
1612次浏览 37人参与
# 如果有时光机,你最想去到哪个年纪? #
23679次浏览 478人参与
# 海康威视求职进展汇总 #
401819次浏览 3414人参与
# 软件开发2024笔面经 #
2324421次浏览 48210人参与
# 风评不好的公司,你会去吗? #
20558次浏览 94人参与
# 国企还是互联网,你怎么选? #
89872次浏览 698人参与
# 如何一边实习一边秋招 #
999011次浏览 12691人参与
# 腾讯求职进展汇总 #
197885次浏览 1650人参与
# 银行笔面经互助 #
84402次浏览 892人参与
# 第一份工作应该选择高薪还是大平台 #
88777次浏览 590人参与
# bilibili求职进展汇总 #
33772次浏览 361人参与
# 许愿池 #
215321次浏览 2536人参与
# 上班苦还是上学苦呢? #
78864次浏览 726人参与
# 国央企薪资爆料 #
13551次浏览 100人参与