12.25

逆波兰表达式求解

思路

逆波兰表达式也是后缀表达式,遇数字存入栈,遇符号出栈两个数字运算。

只需判断String数组是数字还是符号,然后执行相应操作。

总结

无。

代码

    public static int evalRPN(String[] tokens) {
        Stack<Integer> stack=new Stack<>();
        for (String s :tokens){
            if ("+-*/".contains(s)) {
                int t1=stack.pop();
                int t2=stack.pop();
                switch (s) {
                    case "+" -> stack.add(t1 + t2);
                    case "-" -> stack.add(t2 - t1);
                    case "*" -> stack.add(t1 * t2);
                    default -> stack.add(t2 / t1);
                }
            }else stack.push(Integer.valueOf(s));
        }
        return stack.pop();
    }

你可能感兴趣的:(算法)