150. 逆波兰表达式求值 ( 模拟 )

LeetCode:150. 逆波兰表达式求值

150. 逆波兰表达式求值  ( 模拟 )


逆波兰表达式 (后缀表达式)

直接遇到运算符直接运算就行了


AC Code

class Solution {
    public int evalRPN(String[] t) {
        int len = t.length;
        Stack<Integer> num = new Stack<>();

        for(int i = 0; i < len; i++) {
            // 遇到运算符就计算就行了
            if("+".equals(t[i])) {
                // 弹出两个, 然后计算结果压回去栈里
                int a = num.pop();
                int b = num.pop();
                num.push(a + b);
            } else if("-".equals(t[i])){
                int a = num.pop();
                int b = num.pop();
                num.push(b - a);
            } else if("*".equals(t[i])){
                int a = num.pop();
                int b = num.pop();
                num.push(a * b);
            } else if("/".equals(t[i])){
                int a = num.pop();
                int b = num.pop();
                num.push(b / a);
            } else {
                // 数字
                num.push(Integer.valueOf(t[i]));
            }
        }

        return num.peek();
    }
}


上一篇:练习2-4 温度转换


下一篇:练习2-4 温度转换 (5分)