题解 | 走迷宫
走迷宫
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')

查看3道真题和解析