题目:

最新的火星探测机器人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!

分析

题目要求我们求每一个方案的对应输出,那么我们需要用x,y来模拟当前位置坐标,然后通过给定的“LRUD”进行挨个位置的判断,到达一个点就判断#,T或者越界就进行第下一个方案。直到把这个地图的所有方案走完,再进行下一个地图。

具体步骤:

1,用二维数组模拟地图,输入数值

2,找到起始点,起始点坐标用x,y来记录

3,每个地图有Q个方案,每个方案给的“LRUD”进行模拟坐标位置变化,只要撞到#,t或者越界,就结束这个方案,并打印。直到把所有方案判断完。

S

.

#

.

#

.

.

T

#

步骤:

package 历届真题省赛阶段;import java.util.Scanner;//第一行是一个整数T,代表有几个测试样例
//每个测试样例第一行是一个整数N(1<=N<=50))代表迷宫的大小(N*N)。
//随后的N行每行由N个字符串组成,代表迷宫。接下来的一行是一个整数Q,代表有多少次询问,
//接下来的Q行每行是一个仅由“LRUD”四个字母的组成的字符串,字符转长度小于1000.
//‘.’ 代表空地,curiosity可以穿过它
//‘#’ 代表障碍物,不可穿越,不可停留
//‘S’ 代表curiosity的起始位置
//‘T’ 代表curiosity的目的地
public class 测试1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int T = sc.nextInt();char map[][];for (int i = 0; i < T; i++) {int N = sc.nextInt();map = new char[N][N];for (int j = 0; j < N; j++) {map[j] = sc.next().toCharArray();}int x=0;int y=0;for (int j = 0; j < N; j++) {for (int j2 = 0; j2 < N; j2++) {if (map[j][j2] == 'S') {x = j;y = j2;}}}int Q = sc.nextInt();for (int j = 0; j < Q; j++) {String next = sc.next();char[] ch = next.toCharArray();f(x, y, map, ch);}}}private static void f(int x, int y, char[][] map, char[] ch) {for (int i = 0; i < ch.length; i++) {if (ch[i]=='R') {y++;}else if (ch[i]=='L') {y--;}else if (ch[i]=='U') {x--;}else {x++;}if (x<0||y<0||x>map.length-1||y>map.length-1) {System.out.println("越界!");return;}if (map[x][y]=='#') {System.out.println("撞墙!");return;}if (map[x][y]=='T') {System.out.println("到达终点~");return;}}System.out.println("未到终点");return;}}

蓝桥杯 我们的征途是星辰大海(二维数组)相关推荐

  1. Java 蓝桥杯 我们的征途是星辰大海

    Java 蓝桥杯 我们的征途是星辰大海 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代 ...

  2. 【蓝桥杯 三体攻击】暴力解法多维数组

    标题:三体攻击 [题目描述] 三体人将对地球发起攻击.为了抵御攻击,地球人派出了 A × B × C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体.其中,第 i 层第 j 行第 k 列的战 ...

  3. 蓝桥杯 我们的征途是星辰大海 Java

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

  4. 蓝桥杯-我们的征途是星辰大海

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

  5. 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组

    整篇文章为对java数组的完整理解以及部分排序,并有一些简单的demo,经典的案例与蓝桥杯的一些经典数组题有专门的文章梳理. 目录 数组概述 什么是数组 数组的结构 数组的特点: 数组分类 一维数组声 ...

  6. 蓝桥杯第十一届Javac组国二感想

    蓝桥杯第十一届Javac组国二感想    打过第11届蓝桥杯的javac组国二的大二选手    参加蓝桥杯的原因最开始是想证明自己的能力,同时也完成了对自己内心的一场救赎.    故事从高中开始讲吧, ...

  7. 二维数组删除_「leetcode」数组:总结篇!(一文搞懂数组题目)

    数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了. 首先要知道数组在内存中的存储方 ...

  8. java二维数组的创建,java二维数组创建方法

    java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...

  9. 超详细 java二维数组解析

    咳咳,有小伙伴公众号私信说需要出一期二维数组 的知识点,我翻了翻公众号的历史文章,果然没有,这边自罚一杯 1. 二维数组基本概念 之前我们已经知道什么是 数组(一维数组)javaj基础-数组,数组的存 ...

最新文章

  1. python网盘提取码怎么用_Python 一键获取百度网盘提取码
  2. 操作系统 第五章【虚拟存储器】【MOOC答案】
  3. 计算机专业考试基础知识,计算机专业基础知识要点及考试考试.docx
  4. Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)
  5. linux 发生变更的文件夹,【Linux常识篇(3)】文件及文件夹的ctimeatimemtime的含义详解...
  6. 利用WinRar压缩和解压缩文件
  7. 蓝桥杯 ADV-204 算法提高 快速幂
  8. APACHE局域网配置域名访问
  9. 浙江大学计算机科学与技术博士培养研究方向,浙江大学计算机科学技术学院博士研究生导师简介:王跃明...
  10. 上位机、下位机、单片机的关系
  11. 计算机技术在印刷中的应用,网络技术在印刷中的应用技巧
  12. 平面设计师okr_设计团队的KPI/OKR如何制定?
  13. zkteco iface702 中控考勤机java开发步骤一---连接考勤机
  14. 打开word时,出现“向程序发送命令时出现问题”的解决方法
  15. 高效的串行数据驱动框架
  16. java本地外地号码,将JavaAnpr本地化为本地牌照
  17. [构造]triples I
  18. 加加米-又一网络营销中的异军突起!新生的尖锐之师
  19. RadiAnt DICOM Viewer 2021.1中文版
  20. 解决Python安装pyqt5-tool出现的系列问题:ERROR: Could not find a version that satisfies the requirement xxx

热门文章

  1. 多边形或轮廓等距离外扩或收缩
  2. The Definitive Guide to ARM Cortex M3 and Cortex M4 Processors, 3rd Edition.pdf
  3. 微信祝福贺卡小程序V4.7.14
  4. 多线程方面我读了哪些好书
  5. buu Crypto学习记录(36) 还原大师
  6. 魔镜VR的抗锯齿功能
  7. 字符串的反转以及巧用反转 ------关于反转,看这一篇就足够了
  8. 6款AI绘画生成器,让你的创作更有灵感
  9. Network Analysis]复杂网络分析总结
  10. MATLAB mex文件