• 算法题


    有个机器人在数轴上走路,起始位置在原点,每走一步就是一个数。只能左右走,往左是L,往右是R,路径中只包含‘R’和‘L’,路径可以重复走,每走一步可以获得对应数的糖果,但是重复走没有糖果。输入值分为三个:第一行两个数字,空格隔开,分别为:走的步数,以及重复的次数。第二行是走的路径。
    举例:
    3 2
    RRR
    说明机器人执行路径RRR两次。即:RRRRRR
    计算过程:
    1+2+3+4+5+6=21

    public static void main(String[] args) {
    Map<Integer,Integer> map=new HashMap<Integer,Integer>();
    Scanner input1 = new Scanner(System.in);
    System.out.println("走的步数,以及重复的次数:");
    String s1 = input1.nextLine();
    Scanner input2 = new Scanner(System.in);
    System.out.println("请输入路径:");
    String s2 = input2.nextLine().toUpperCase();
    String root="";
    String a[]=s1.split(" ");
    for(int i=0;i<Integer.valueOf(a[1]);i++){
    root+=s2;
    }
    Integer sum=0;
    Integer tmp=0;
    String b[]=root.split("");
    for(int i=1;i<b.length;i++){
    String direct=b[i];
    if(i==1){
    if("R".equals(direct)){
    tmp=1;
    map.put(tmp, 1);
    }else{
    tmp=-1;
    map.put(tmp, -1);
    }
    }else{
    if("R".equals(direct)){
    tmp=tmp+1;
    }else{
    tmp=tmp-1;
    }
    if(!map.containsKey(String.valueOf(tmp))){
    map.put(tmp, tmp);
    }
    }
    }
    for(Map.Entry<Integer, Integer> entry : map.entrySet()){
    sum+=Math.abs(entry.getValue());
    }
    System.out.println("总糖水果数为:"+sum);
    }

  • 相关阅读:
    MongoDB集群搭建-主从
    MongoDB集群搭建-副本集
    mongodb 复制集
    MongoDB高级知识-易使用
    MongoDB高级知识-易扩展
    【福布斯中文网】与任正非的一次花园谈话
    基于IG的特征评分方法
    数据挖掘方法论及实施步骤
    数据挖掘应用之:电信业离网预警建模过程
    常用的机器学习&数据挖掘知识点
  • 原文地址:https://www.cnblogs.com/foreverstudy/p/12877042.html
Copyright © 2020-2023  润新知