最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成。
  共有四种方格:
  ‘.’ 代表空地,curiosity可以穿过它
  ‘#’ 代表障碍物,不可穿越,不可停留
  ‘S’ 代表curiosity的起始位置
  ‘T’ 代表curiosity的目的地
  NASA将会发送一系列的命令给curiosity,格式如下:“LRUD”分别代表向左,向右,向上,向下走一步。由于地球和火星之间最近时也有55000000km!所以我们必须提前判断这一系列的指令会让curiosity最终处在什么样的状态,请编程完成它。
输入格式
  第一行是一个整数T,代表有几个测试样例
  每个测试样例第一行是一个整数N(1<=N<=50))代表迷宫的大小(N*N)。随后的N行每行由N个字符串组成,代表迷宫。接下来的一行是一个整数Q,代表有多少次询问,接下来的Q行每行是一个仅由“LRUD”四个字母的组成的字符串,字符转长度小于1000.
输出格式
  对于每个询问输出单独的一行:
  “I get there!”:执行给出的命令后curiosity最终到达了终点。
  “I have no idea!”:执行给出的命令后curiosity未能到达终点。
  “I am dizzy!”:curiosity在执行命令的过程中撞到了障碍物。
  “I am out!”:代表curiosity在执行命令的过程中走出了迷宫的边界。

Sample Input

2
2
S.
#T
2
RD
DR
3
S.#
.#.
.T#
3
RL
DDD
DDRR

Sample Output

I get there!
I am dizzy!
I have no idea!
I am out!
I get there!

代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class 我们的征途是星辰大海 {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));ArrayList<String> res = new ArrayList<>(); int n= Integer.parseInt(br.readLine()); //测试数据的数量for (int i = 0; i < n; i++) {int m = Integer.parseInt(br.readLine());//迷宫大小char[][] migong = new char[m][m];for (int j = 0; j < m; j++) {String str = br.readLine();migong[j] = str.toCharArray();}int times = Integer.parseInt(br.readLine());//指令数量for (int j = 0; j < times; j++) {String instruct = br.readLine();res.add(printResult(migong, instruct));}}for (int j = 0; j < res.size(); j++) {System.out.println(res.get(j));}}public static String printResult(char[][] array, String instruct){int x = 0;int y = 0;int flag = 0;/* 机器人的初始位置 */for (int i = 0; i < array.length; i++) {if(flag == 1)break;for (int j = 0; j < array.length; j++) {if(array[i][j] == 'S') {flag = 1;x = i;y = j;break;}}}for (int i = 0; i < instruct.length(); i++) {if(instruct.charAt(i) == 'L'){y--;if(x < 0 || x >= array.length || y < 0 || y >= array[0].length){return "I am out!";}if(array[x][y] == '#'){return "I am dizzy!";}if(array[x][y] == 'T'){return "I get there!";}}else if(instruct.charAt(i) == 'R'){y++;if(x < 0 || x >= array.length || y < 0 || y >= array[0].length){return "I am out!";}if(array[x][y] == '#'){return "I am dizzy!";}if(array[x][y] == 'T'){return "I get there!";}}else if(instruct.charAt(i) == 'U'){x--;if(x < 0 || x >= array.length || y < 0 || y >= array[0].length){return "I am out!";}if(array[x][y] == '#'){return "I am dizzy!";}if(array[x][y] == 'T'){return "I get there!";}}else{x++;if(x < 0 || x >= array.length || y < 0 || y >= array[0].length){return "I am out!";}if(array[x][y] == '#'){return "I am dizzy!";}if(array[x][y] == 'T'){return "I get there!";}}}if(array[x][y] == 'T'){return "I get there!";}else return "I have no idea!";}
}

算法提高 我们的征途是星辰大海相关推荐

  1. [蓝桥杯]测试题 E 算法提高 我们的征途是星辰大海 题解和C++示例代码

    E 算法提高 我们的征途是星辰大海 时间限制:1.0s   内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表 ...

  2. Java实现 蓝桥杯VIP 算法提高 我们的征途是星辰大海

    算法提高 我们的征途是星辰大海 时间限制:1.0s 内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,c ...

  3. 蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海

    算法提高 我们的征途是星辰大海 时间限制:1.0s 内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,c ...

  4. 蓝桥杯--算法提高 我们的征途是星辰大海 (模拟)

    算法提高 我们的征途是星辰大海   时间限制:1.0s   内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表 ...

  5. 蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海

    最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代表障碍物,不可穿越,不可停留 'S' 代 ...

  6. 蓝桥杯 算法提高 我们的征途是星辰大海

    最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代表障碍物,不可穿越,不可停留 'S' 代 ...

  7. 蓝桥杯 ADV-201 VIP试题 我们的征途是星辰大海(试题解析)

    试题 算法提高 我们的征途是星辰大海 提交此题   评测记录 资源限制 时间限制:1.0s   内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格 ...

  8. 问题 : 我们的征途是星辰大海

    算法提高  我们的征途是星辰大海  时间限制:1.0s     内存限制:256.0MB      最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: ...

  9. 从入门到精(fang)通(qi)第5期 我们的征途是星辰大海

    生物信息分析:从入门到精(fang)通(qi)第5期 我们的征途是星辰大海 GeneDock聚道科技 为生命计算,助看病不难! 已关注 19 人赞同了该文章 生信小白:震惊!一个全基因组会产生数百万个 ...

最新文章

  1. ssh mysql环境搭建_搭建一个MySQL高可用架构集群环境
  2. 2014.3.29阿里巴巴暑期实习笔试题分析
  3. Win64 驱动内核编程-34.对抗与枚举MiniFilter
  4. mysql数据库制定位置_MySQL数据库在指定位置增加字段
  5. 完课率最高 | 带学吴恩达《机器学习》课程和作业,带打Kaggle全球顶级大赛!...
  6. wget使用tsocks
  7. H3C 防火墙无法ping通端口
  8. docker 离线安装_企业级Docker私库Harbor安装详解
  9. 当想给下一个请求发送同享的数据时候 可以使用域对象设置属性
  10. 面试问题——fread和read的区别
  11. 【读书笔记】《软件方法(上)业务建模和需求》(第2版)习题答案
  12. 循环冗余校验码(计算机组成原理12)
  13. python电商项目介绍_django打造电商项目
  14. 如何将YouTube和其他网络视频投射到Kodi(例如Chromecast)
  15. MT6755/HelioP10处理器性能,MT6755芯片规格资料
  16. 小白入行,测试点随手记
  17. API 接口大全之 1688
  18. 实验室工作站配置多用户远程连接教程(亲测有效版)
  19. 百度Python工程师告诉你学好Python一定要养成的那些
  20. CSS处理图片渲染时拉伸和挤压变形

热门文章

  1. Camera ITS当中的test_ev_compensation_basic测试
  2. yum https ssl双向认证 证书申请
  3. 《拆解 XLNet 模型设计,回顾语言表征学习的思想演进》
  4. Springboot集成Swagger报错Parameter 0 of method linkDiscoverers in org.springframework.hateoas.config.Hat
  5. 开通微信公众号留言功能的开通问题
  6. 计算机无线传输的标准,最受欢迎的几个无线标准
  7. 【软件测试教程】手机号码归属地开发文档
  8. 【单片机原理及其应用】第五章定时器的介绍和习题分析
  9. Flare Network,跨越互操作性三难困境
  10. python中arcsec_Python中jpg图像的显示网格