关注
迷宫问题:把传入的矩阵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秋招体验点评 #
19537次浏览 179人参与
# 哪些公司真双非友好? #
45619次浏览 207人参与
# 360集团校招 #
29083次浏览 188人参与
# 你听到的“最没用”的秋招建议 #
4165次浏览 39人参与
# 薪资要看总包还是月薪? #
6140次浏览 75人参与
# 什么样的公司千万别去 #
5401次浏览 39人参与
# 京东开奖 #
528110次浏览 2854人参与
# 如果公司给你放一天假,你会怎么度过? #
26311次浏览 148人参与
# 校招阶段,学历VS技术哪个更重要? #
52271次浏览 335人参与
# 工作以后,你父母对你啥态度 #
2582次浏览 38人参与
# 你在职场上见过哪些“水货”同事 #
8449次浏览 63人参与
# 找工作,行业重要还是岗位重要? #
81600次浏览 1656人参与
# 欣旺达工作体验 #
18844次浏览 43人参与
# 你觉得找工作该拿大厂还是小厂练手 #
219009次浏览 1792人参与
# 通信硬件知识分享 #
38583次浏览 524人参与
# 联影医疗求职进展汇总 #
30291次浏览 126人参与
# 简历无回复,你会继续海投还是优化再投? #
108938次浏览 832人参与
# 材料专业就业可以去哪些企业岗位 #
47371次浏览 368人参与
# 外包能不能当跳板? #
51389次浏览 250人参与
# 2023届毁约公司名单 #
224434次浏览 1048人参与
# 校招薪资来揭秘 #
12755次浏览 57人参与

