解题思路:
注意事项:每行指令都是从新回到原点再走的
参考代码:
#判断每走一步的结果
def check(x,y,lab):
if x>=len(lab) or x<0 or y>=len(lab[0]) or y<0:
print('I am out!')
return False
elif lab[x][y]=='.' or lab[x][y]=='S':
return True
elif lab[x][y]=='#':
print('I am dizzy!')
return False
elif lab[x][y]=='T':
print('I get there!')
return False
#测试样例数
T=int(input())
for _ in range(T):
#迷宫规模
N=int(input().strip())
#迷宫
lab=[list(input().strip()) for _ in range(N)]
#指令数
Q=int(input().strip())
a,b=-1,-1
for i in range(len(lab)):
if 'S' in lab[i]:
a_temp,b_temp=i,lab[i].index('S')
#指令
ins=[list(input().strip()) for _ in range(Q)]
for j in range(len(ins)):
a,b=a_temp,b_temp
for k in range(len(ins[j])):
if ins[j][k]=='D':
a+=1
if not check(a,b,lab):
break
if ins[j][k]=='U':
a-=1
if not check(a,b,lab):
break
if ins[j][k]=='R':
b+=1
if not check(a,b,lab):
break
if ins[j][k]=='L':
b-=1
if not check(a,b,lab):
break
if lab[a][b]!='T'and k==len(ins[j])-1:
print('I have no idea!')0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复