晋城建设局官方网站,南康网站建设,包装设计需要学什么软件,监理工程师查询系统入口所有题目参考答案均是小编自己想法#xff0c;仅供参考#xff0c;解法很多#xff0c;大可不必局限#xff0c;有更优解的大神无解#xff0c;可评论或私聊博主指正#xff01; 题目1
找大串#xff0c;给定一个字符串其中包含任意组连续字符#xff0c;我们把超过3个… 所有题目参考答案均是小编自己想法仅供参考解法很多大可不必局限有更优解的大神无解可评论或私聊博主指正 题目1
找大串给定一个字符串其中包含任意组连续字符我们把超过3个连续相同字符的组合称作为大串请找出他们的起止位置。如“叽叽汪汪汪喵喵喵喵渣渣”可分为“叽叽”、“汪汪汪”、“喵喵喵喵 ”、“喳喳”其中“汪汪汪”和“喵喵喵喵”为大串组。请根据下面提示代码给出完整思路代码。
public class test1 {public static void main(String[] args) {// 期望的输出为 [[2,4]]System.out.println(run(这是啊啊啊呀));// 期望的输出为 [[2,4],[5,8]]System.out.println(run(叽叽汪汪汪喵喵喵喵喳喳));}/*** 找出输入字符串中连续3个以上相同字符的起始和结束位置* param input 输入字符串*/private static ListListInteger run(String input) {// TODO 在这里实现代码}
}
参考答案
import java.util.ArrayList;
import java.util.List;/*** AuthorYunnuo* Email: ymzebox.vip* Date2023/8/11 14:14* Description:*/
public class Test1 {public static void main(String[] args) {// 期望的输出为 [[2,4]]System.out.println(run(这是啊啊啊呀));// 期望的输出为 [[2,4],[5,8]]System.out.println(run(叽叽汪汪汪喵喵喵喵喳喳));}/*** 找出输入字符串中连续3个以上相同字符的起始和结束位置* param input 输入字符串*/private static ListListInteger run(String input) {ListListInteger result new ArrayList();int start 0;int end 0;while (end input.length()) {if (input.charAt(start) input.charAt(end)) {end;} else {if (end - start 3) {ListInteger interval new ArrayList();interval.add(start);interval.add(end - 1);result.add(interval);}start end;}}// 结束if (end - start 3) {ListInteger interval new ArrayList();interval.add(start);interval.add(end - 1);result.add(interval);}return result;}
}
题目2
NASA派出的一个机器人小车分队已经成功着陆火星出乎意料的是摆在这些小车面前的是一个十分规矩的矩形平原操作员需要通过远程发送指令序列来控制这些小车移动在移动的过程中小车上的高清摄像机会将整个平原的地形图完整记录并返回给地球为了方便导航我们将平原看成一个二维坐标面x轴正方向为东y轴正方向为北矩形平原的最左下角坐标为00这样小车的方位便可以使用x坐标y坐标面向方位来表示如00N表示小车位于平原的左下角并且面向北操作员可以用指令LR和M。L和R可以让小车向左或向右旋转90度而不移动M可以让小车向所面向的方向方位前进一个单位而不改变方向你需要编写一个程序来计算小车最终的位置与方位要求用面向对象的思想解决这个问题你可以参考以下代码片段实现
public static void main(String[] args) {// 控制器RoverCoordinator roverCoordinator new RoverCoordinator();// 平面右上角的坐标xroverCoordinator.setMaxX(5);// 平面右上角的坐标yroverCoordinator.setMaxY(5);// 第一辆小车的数据Rover rover1 new Rover(1,1,2,N);roverCoordinator.addRover(rover1);// 第二辆小车的数据Rover rover2 new Rover(2,3,3,E);roverCoordinator.addRover(rover2);// 通过协调器给小车1发指令roverCoordinator.action(rover1.getId(),LMLMLMLMM);// 通过协调器给小车2发指令roverCoordinator.action(rover2.getId(),MMRMMRMRRM);System.out.println(rover1);System.out.println(rover2);}public cless Rover {/*** 小车id*/private int id;/*** 小车坐标x值*/private int x;/*** 小车坐标y值*/private int y;/*** 小车面向方位*/private String direction;public Rover(int id, int x, int y, String direction) {this.id id;this.x x;this.y y;this.direction direction;} /*** 小车执行单个指令* param command 指令*/public void action(char command) {// TODO 你的代码}
}public class RoverCoordinator {/*** 所有已注册小车*/private MapInteger,Rover roverMap;/*** 地图最大x值*/private int maxX;/*** 地图最大y值*/private int maxY;public RoverCoordinator(){roverMap new HashMap();}public void addRover(Rover rover){roverMap.put(rover.getId(),rover);checkOutOfRange();}/*** 操控指定的小车完成指令序列,同时检查越界问题* param id 小车ID* param commandSequence 指令序列*/public void action(int id,String commandSequence){}/*** 判断小车是否越界*/private void checkOutOfRange() {}}
参考答案
RoverCoordinator类
import lombok.Data;import java.util.HashMap;
import java.util.Map;/*** AuthorYunnuo* Email: ymzebox.vip* Date2023/8/11 14:34* Description: 小车协调通器*/
Data
public class RoverCoordinator {/*** 所有已注册小车*/private MapInteger,Rover roverMap;/*** 地图最大x值*/private int maxX;/*** 地图最大y值*/private int maxY;public RoverCoordinator(){roverMap new HashMap();}public void addRover(Rover rover){roverMap.put(rover.getId(),rover);checkOutOfRange();}/*** 操控指定的小车完成指令序列,同时检查越界问题* param id 小车ID* param commandSequence 指令序列*/public void action(int id,String commandSequence){Rover rover roverMap.get(id);if (rover ! null) {for (char command : commandSequence.toCharArray()) {executeCommand(rover, command);checkOutOfRange();}}}private void executeCommand(Rover rover, char command) {if (command L) {rover.turnLeft();} else if (command R) {rover.turnRight();} else if (command M) {rover.move();}}/*** 判断小车是否越界*/private void checkOutOfRange() {for (Rover rover : roverMap.values()) {if (rover.getX() 0 || rover.getX() maxX || rover.getY() 0 || rover.getY() maxY) {throw new RuntimeException(Rover rover.getId() 出界了!);}}}
}
Rover类
import lombok.Data;/*** AuthorYunnuo* Email: ymzebox.vip* Date2023/8/11 14:33* Description:*/
Data
public class Rover {/*** 小车ID*/private int id;/*** 小车x坐标*/private int x;/*** 小车y坐标*/private int y;/*** 小车面向方位*/private Direction direction;public Rover(int id, int x, int y, String direction) {this.id id;this.x x;this.y y;this.direction Direction.valueOf(direction);}public void turnLeft() {switch (direction) {case N:direction Direction.W;break;case E:direction Direction.N;break;case S:direction Direction.E;break;case W:direction Direction.S;break;}}public void turnRight() {switch (direction) {case N:direction Direction.E;break;case E:direction Direction.S;break;case S:direction Direction.W;break;case W:direction Direction.N;break;}}public void move() {switch (direction) {case N:y;break;case E:x;break;case S:y--;break;case W:x--;break;}}Overridepublic String toString() {return Rover id : ( x , y , direction );}
}
enum Direction {N, E, S, W
}