关注
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
相关推荐
10-21 19:15
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果秋招能重来,我会____ #
9343次浏览 89人参与
# 苦尽甘来时,再讲来时路 #
9225次浏览 172人参与
# “vivo”个offer #
18180次浏览 145人参与
# 如果上班像打游戏,你最想解锁什么技能 #
2065次浏览 31人参与
# 我是面试官,请用一句话让我破防 #
1587次浏览 18人参与
# 为了实习逃课值吗? #
11162次浏览 94人参与
# 快手技术岗信息交流阵地 #
12041次浏览 74人参与
# 校招生月薪1W算什么水平 #
2361次浏览 21人参与
# 机械求职避坑tips #
70995次浏览 485人参与
# 一份好的简历长什么样? #
5987次浏览 162人参与
# 选完offer后,你后悔学机械吗? #
42710次浏览 249人参与
# 秋招许愿,本周能____ #
13371次浏览 89人参与
# 选择和努力,哪个更重要? #
133905次浏览 1029人参与
# 班味很重的人是啥样的? #
3594次浏览 29人参与
# 应届生第一份工资要多少合适 #
3180次浏览 35人参与
# 投递无反馈,如何优化求职策略? #
2040次浏览 26人参与
# 材料专业可以靠半导体脱坑吗? #
26570次浏览 138人参与
# 机械制造秋招总结 #
82150次浏览 817人参与
# 大学最后一个寒假,我想…… #
60070次浏览 652人参与
# 职场新人体验 #
119305次浏览 821人参与
# 你觉得实习能学到东西吗 #
114269次浏览 1248人参与
# 新凯来求职进展汇总 #
57712次浏览 150人参与
