关注
迷宫问题:把传入的矩阵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
相关推荐
点赞 评论 收藏
分享
06-25 18:32
门头沟学院 运营 点赞 评论 收藏
分享
06-17 11:08
天津理工大学 Java 点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届校招投递进展 #
27901次浏览 217人参与
# 小米提前批笔试难吗 #
33794次浏览 355人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
8851次浏览 104人参与
# 为了找工作你花了哪些钱? #
26948次浏览 257人参与
# 烟草笔面经互助 #
16786次浏览 180人参与
# 打工人的精神状态 #
49259次浏览 857人参与
# 大疆的机械笔试比去年难吗 #
72803次浏览 618人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61226次浏览 490人参与
# 牛友们,签完三方你在忙什么? #
98113次浏览 852人参与
# 你秋招想去哪些公司 #
21643次浏览 798人参与
# 你今年的保底offer是哪家 #
118142次浏览 537人参与
# 你觉得比亚迪今年还有春招吗? #
191138次浏览 1050人参与
# 视觉/交互/设计百问百答 #
46357次浏览 435人参与
# 秋招结束之后的日子 #
75131次浏览 909人参与
# kpi面有什么特征 #
52168次浏览 402人参与
# 机械人春招想让哪家公司来捞你? #
344413次浏览 3078人参与
# 机械人你觉得今年行情怎么样? #
1285次浏览 27人参与
# 那些我实习了才知道的事 #
210893次浏览 1721人参与
# 如何缓解入职前的焦虑 #
192218次浏览 1339人参与
# 查收我的offer竞争力报告 #
189458次浏览 1265人参与
# 为什么国企只招应届生 #
178303次浏览 1157人参与