关注
python迷宫 def tracback(x, y, dis, n):
if pos[x][y] == '#':
return float('inf')
if pos[x][y] == 'E':
if pos[x][y] != '*':
return dis
pos[x][y] = '#'
if x+1 == n:
a = tracback(0, y, dis + 1, n)
else:
a = tracback(x + 1, y, dis + 1, n)
if x-1 == -1:
b = tracback(n-1, y, dis + 1, n)
else:
b = tracback(x - 1, y, dis + 1, n)
if y+1 == n:
c = tracback(x, 0, dis + 1, n)
else:
c = tracback(x, y+1, dis + 1, n)
if y-1 == -1:
d = tracback(x, n-1, dis + 1, n)
else:
d = tracback(x, y-1, dis + 1, n)
res = min(a, b, c, d)
pos[x][y] = '.'
return res
n = int(input().strip())
pos = []
start = [0, 0]
for i in range(n):
temp = input().strip()
row = []
for j in range(n):
if temp[j] == 'S':
start = [i, j]
row.append(temp[j])
pos.append(row)
res = tracback(start[0], start[1], 0, n)
if res == float('inf'):
print(-1)
else:
print(res)
查看原帖
点赞 4
相关推荐
查看12道真题和解析 点赞 评论 收藏
分享
02-11 13:28
南昌大学 golang 点赞 评论 收藏
分享
02-27 14:43
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开春招了? #
41800次浏览 233人参与
# 关于提前批我想问 #
279012次浏览 2345人参与
# 小厂一定不能去吗? #
3155次浏览 57人参与
# 如果没找到工作,考公是你的退路吗 #
64850次浏览 454人参与
# 哪些公司开暑期实习了? #
1190次浏览 14人参与
# 实习心态崩了 #
105865次浏览 537人参与
# 为了秋招你都做了哪些准备? #
33278次浏览 539人参与
# 通信/硬件求职避坑tips #
143745次浏览 1092人参与
# 计算机专业还有必要去大厂卷吗 #
57156次浏览 232人参与
# 牛友的志愿填报指南 #
54357次浏览 388人参与
# 秋招笔试记录 #
367076次浏览 2103人参与
# 应届生,你找到工作了吗 #
116956次浏览 714人参与
# 通信硬件薪资爆料 #
1241775次浏览 7220人参与
# 我的求职精神状态 #
436487次浏览 3110人参与
# 业务面应该做哪些准备 #
98745次浏览 1105人参与
# 如果再来一次,你还会学硬件吗 #
156232次浏览 1471人参与
# 23届的你们都什么时候入职? #
238231次浏览 1124人参与
# 机械制造薪资爆料 #
1947192次浏览 11048人参与
# 你找工作的时候用AI吗? #
183439次浏览 934人参与
# 一人推荐一个机械人值得去的公司 #
473804次浏览 4288人参与
字节跳动工作强度 1112人发布