题意
  • 计算逆波兰法表示的算式
    解法
  • 遇到数字存入栈,遇到符号则出栈两个数字,并将结果入栈

    class Solution {
    

    Stack<Integer> integers = new Stack<>();

    public int evalRPN(String[] tokens) {
    for(String token: tokens) {
    if ("+".equals(token)) {
    int n2 = integers.pop(), n1 = integers.pop();
    integers.push(n1 + n2);
    } else if ("-".equals(token)) {
    int n2 = integers.pop(), n1 = integers.pop();
    integers.push(n1 - n2);
    } else if ("*".equals(token)) {
    int n2 = integers.pop(), n1 = integers.pop();
    integers.push(n1 * n2);
    } else if ("/".equals(token)) {
    int n2 = integers.pop(), n1 = integers.pop();
    integers.push(n1 / n2);
    } else {
    integers.push(Integer.parseInt(token));
    }
    }
    return integers.pop();
    }
    }