题解 | #两个机器人#

两个机器人

https://ac.nowcoder.com/acm/problem/21742

阅读完此题,最棘手的问题就是“机器人存在一些bug,可能会忽略一些指令,或者所有指令,或者全部忽略”。这是此题的难点之处,为什么呢?因为我们根本无法控制机器人的行动轨迹,不知道在哪会“出现bug”,所以行动轨迹根本无法把握。基于此,我们只能从字符串的命令出发,我们先算出两个计算器人的起始位置之间的间距,用x_spacing,y_spacing表示,再接下来对命令的每个字符遍历,如果是U或D,进行y++,R或L进行x++,为什么要进行这样操作呢?因为,两个机器人一个向左运动,一个向右运动,产生的间距最大就是相加,所以进行y++,基于此便可以解决此题、

import java.util.Scanner;
public class Main{
public static void main(String arg[]){
    Scanner sc=new Scanner(System.in);
    int x1=sc.nextInt();
    int y1=sc.nextInt();
    int x2=sc.nextInt();
    int y2=sc.nextInt();
    String order=sc.next();
    int x=0,y=0,x_spacing=Math.abs(x1-x2),y_spacing=Math.abs(y1-y2);
    for(int i=0;i<order.length();i++){
        if(order.charAt(i)=='U'||order.charAt(i)=='D') {
        y++;
        }
        else {
        	x++;
        }
    }
    if(y>=y_spacing&&x>=x_spacing){
        System.out.print("Explosion");
    }else{
        System.out.print("Safe");
    }
}
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务