matteo's coding field.

LeetCode.150 Evaluate Reverse Polish Notation

字数统计: 135阅读时长: 1 min
2019/05/25 Share
题意
  • 计算逆波兰法表示的算式
    解法
  • 遇到数字存入栈,遇到符号则出栈两个数字,并将结果入栈

    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();
      }
    }
    
CATALOG
  1. 1. 题意
  2. 2. 解法