题解 | #迷宫问题#

迷宫问题

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]})')





全部评论

相关推荐

想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务