题解 | #迷宫问题#
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
# 输入:地图尺寸 m, n = map(int, input().split()) # 输入:绘制地图 matrix = [] for i in range(m): matrix.append(list(map(int, input().split()))) # 求路线的方法 def way(r, c, rec=[(0, 0)]): ''' 打印路线 :param r: 游标所在行号 :param c: 游标所在列号 :param rec: 路线记录容器 :return: 路线 ''' # 向右 if c + 1 < n and matrix[r][c + 1] == 0: # 没出界,右边是0 if (r, c + 1) not in rec: # 不走回头路 way(r, c + 1, rec + [(r, c + 1)]) # 向左 if c - 1 >= 0 and matrix[r][c - 1] == 0: # 没出界,左边是0 if (r, c - 1) not in rec: way(r, c - 1, rec + [(r, c - 1)]) # 向下 if r + 1 < m and matrix[r + 1][c] == 0: if (r + 1, c) not in rec: way(r + 1, c, rec + [(r + 1, c)]) # 向上 if r - 1 >= 0 and matrix[r - 1][c] == 0: # 没出界,上边是0 if (r - 1, c) not in rec: way(r - 1, c, rec + [(r - 1, c)]) if (r, c) == (m - 1, n - 1): # 到达出口 for i in rec: # print(i) print('(' + str(i[0]) + ',' + str(i[1]) + ')') # return rec # 执行 way(0, 0, rec=[(0, 0)])