题解 | #迷宫问题#
迷宫问题
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]})')


正浩创新EcoFlow公司福利 605人发布