关注
迷宫问题:把传入的矩阵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
相关推荐
点赞 评论 收藏
分享
09-28 14:58
Swinburne University of Technology UE4 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 秋招开始捡漏了吗 #
13475次浏览 74人参与
# 今年秋招还有金九银十吗 #
17513次浏览 134人参与
# “vivo”个offer #
46356次浏览 310人参与
# 秋招,不懂就问 #
331363次浏览 1984人参与
# 辞职后的日常 #
15547次浏览 84人参与
# 上班后,才发现大学__白学了 #
1978次浏览 20人参与
# 满帮集团求职进展汇总 #
7944次浏览 71人参与
# 打工人的精神状态 #
101023次浏览 1309人参与
# 分享一个让你热爱工作的瞬间 #
43304次浏览 395人参与
# 上班到公司第一件事做什么? #
98726次浏览 681人参与
# 学历对求职的影响 #
550368次浏览 3904人参与
# 实习期间如何提升留用概率? #
189793次浏览 1606人参与
# 一人一个landing小技巧 #
127516次浏览 1463人参与
# 我和mentor的爱恨情仇 #
79262次浏览 434人参与
# 学历or实习经历,哪个更重要 #
192400次浏览 1026人参与
# 海信求职进展汇总 #
84942次浏览 408人参与
# 秋招结束之后的日子 #
99995次浏览 1011人参与
# 被同事甩锅了怎么办 #
25191次浏览 100人参与
# 数字马力求职进展汇总 #
211751次浏览 1677人参与
# 和mentor 1on1 都聊什么? #
3892次浏览 22人参与
# 你见过哪些工贼行为 #
32077次浏览 151人参与
海康威视公司福利 1139人发布
