题目链接

题目大意:计算逆波兰表达式的值。

法一:stack,用stack存数,遇到操作符,则运算。代码如下(耗时12ms):

 1     public int evalRPN(String[] tokens) {
 2         Stack<Integer> s = new Stack<Integer>();
 3         for(int i = 0; i < tokens.length; i++) {
 4             //如果是数值
 5             if(!tokens[i].equals("+") && !tokens[i].equals("-") && !tokens[i].equals("*") && !tokens[i].equals("/")) {
 6                 s.push(Integer.parseInt(tokens[i]));
 7             }
 8             //如果是操作符
 9             else {
10                 int b = s.pop();
11                 int a = s.pop();
12                 int c = compute(a, b, tokens[i]);
13                 s.push(c);
14             }
15         }
16         return s.pop();
17     }
18         //运算
19     private static int compute(int a, int b, String s) {
20         if(s.equals("+")) {
21             return a + b;
22         }
23         else if(s.equals("-")) {
24             return a - b;
25         }
26         else if(s.equals("*")) {
27             return a * b;
28         }
29         else {
30             return a / b;
31         }
32     }
View Code

相关文章:

  • 2022-12-23
  • 2021-06-24
  • 2021-07-29
  • 2021-06-04
  • 2022-02-27
  • 2022-01-22
  • 2022-02-03
  • 2021-09-27
猜你喜欢
  • 2022-12-23
  • 2021-12-16
  • 2022-01-16
  • 2022-12-23
  • 2022-12-23
  • 2021-09-08
  • 2021-09-02
相关资源
相似解决方案