返回题解分享
讨论 / 题解分享/ 帖子详情

迷宫(结果填空) - 题解

python

from collections import deque
vis = [[False]*(55) for _ in range(35)]
m,n  = map(int,input().split())
a = []
for i in range(m):
    a.append(list(map(int,input())))
#方向的代表字母为D/R/U/L
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
res = [[""]*55 for _ in range(35)]
res[0][0] = ""
keys = [['U'],['R'],['D'],['L']]
def bfs(i,j):
    q = deque()
    q.append((i,j))
    while q:
        x,y = q.popleft()
        if vis[x][y] :
            continue
        vis[x][y] = True
        if x==m-1 and y==n-1:
            print(*res[m-1][n-1],sep="")
            return
        for k in range(4):
            xx,yy = x+dx[k],y+dy[k]
            res.append(keys[k])
            if xx<0 or xx>m-1 or yy<0 or yy>n-1 or a[xx][yy]== 1:
                continue
            res[xx][yy] = list(res[x][y])+keys[k]
            q.append((xx,yy))
bfs(0,0)
0 回复 0 转发 0 喜欢 5 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!