投篮大赛 华为OD真题 100

6e9f10eaabd8a1a4e25d6ebe7a909944.png
4c5f01075432c99cb0be5b5f51a4c19d.png
faa89d50207883c9dff3fe2ec5e00fa7.png
928b8ddd73741d6c422c16e145d194ea.png
6e798b9d0b2a699e7353cf6ba737325c.png
4dcab0fcc9139e47d99d63199d830131.png

public class Main{
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
 
        String[] ops = sc.nextLine().split(" ");
 
        List<Integer> list = new ArrayList<>();
        boolean isError = false;
        for(int i=0; i<ops.length; i++){
            String s = ops[i];
            if(s.equals("+")){
                if(list.size() < 2){    //集合中没有足够的数据用来相加
                    isError = true;
                    break;
                }
                int before1 = list.get(list.size()-1);    //倒数第一个数
                int before2 = list.get(list.size()-2);    //倒数第二个数
                list.add(before1 + before2);
            }else if(s.equals("C")){
                if(list.size() == 0){    //集合中没有数据用来删除
                    isError = true;
                    break;
                }
                list.remove(list.size()-1);    //移除最后一个数
            }else if(s.equals("D")){o
                if(list.size() == 0){    //集合中没有数据用来double
                    isError = true;
                    break;
                }
                int before1 = list.get(list.size()-1);    //倒数第一个数
                list.add(before1 * 2);
            }else {
                list.add(Integer.valueOf(s));
            }
        }
 
        if(isError){
            System.out.println(-1);
        }else {
            int res = 0;
            for(int i : list){
                res += i;
            }
 
            System.out.println(res);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值