题解 | #迷宫问题#
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
import sys starts = [0, 0] 行, 列 = map(int, input().strip().split(" ")) migong, pass1 = [], [] for line in sys.stdin: a = line.strip().split(" ") migong.append(a) def justgo(a, pass1): if not (0 <= a[0] < 行): return False elif not (0 <= a[1] < 列): return False elif migong[a[0]][a[1]] == '1': return False elif a in pass1: return False else: return True repass1 = [] def go(starts, pass1): if starts[0] == 行-1 and starts[1] == 列-1: repass1.append(pass1) else: if justgo([starts[0] + 1, starts[1]], pass1): go([starts[0] + 1, starts[1]], pass1 + [[starts[0] + 1, starts[1]]]) if justgo([starts[0], starts[1] + 1], pass1): go([starts[0], starts[1] + 1], pass1 + [[starts[0], starts[1] + 1]]) if justgo([starts[0] - 1, starts[1]], pass1): go([starts[0] - 1, starts[1]], pass1 + [[starts[0] - 1, starts[1]]]) if justgo([starts[0], starts[1] - 1], pass1): go([starts[0], starts[1] - 1], pass1 + [[starts[0], starts[1] - 1]]) go(starts,pass1) min1 = min([len(i) for i in repass1]) print('(0,0)') for i in repass1: if len(i) == min1: for k in i: print(f'({k[0]},{k[1]})')