题解 | 走迷宫

走迷宫

https://www.nowcoder.com/practice/e88b41dc6e764b2893bc4221777ffe64

import sys
from collections import deque
input=sys.stdin.read().split()
n=int(input[0])
m=int(input[1])
xs=int(input[2])-1
ys=int(input[3])-1
xt=int(input[4])-1
yt=int(input[5])-1
data=input[6:]
if data[xs][ys]=='*' or data[xt][yt]=='*':
    print(-1)
else:
    d=deque()
    list1=[[-1]*m for i in range(n)]
    dic1={(-1,0),(1,0),(0,-1),(0,1)}
    d.append((xs,ys))
    list1[xs][ys]=0
    while d:
        x,y=d.popleft()
        if x==xt and y==yt:
            print(list1[x][y])
            exit()
        for i,j in dic1:
            if 0<=i+x<n and 0<=y+j<m:
                if list1[i+x][j+y]!=-1 or data[i+x][j+y]=='*':
                    continue
                d.append((i+x,j+y))
                list1[i+x][j+y]=list1[x][y]+1
    print('-1')

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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