解题思路:
注意事项:每行指令都是从新回到原点再走的
参考代码:
#判断每走一步的结果 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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复