首页 > 其他 > 详细

Leetcode 150. Evaluate Reverse Polish Notation

时间:2018-02-19 21:00:02      阅读:213      评论:0      收藏:0      [点我收藏+]

技术分享图片

Similar Questions Basic Calculator Expression Add Operators

思路:逆波兰式的计算(Reverse Polish Notation),利用栈,正向遍历String数组,遇到符号字符,就将栈顶的2个元素弹出做对应计算,将计算结果压栈;遇到数字,直接压栈。

 1 class Solution {
 2     public int evalRPN(String[] tokens) {
 3         Stack<Integer> s = new Stack<Integer>();
 4         for(int i = 0; i < tokens.length; i++) {
 5             int a, b;
 6             switch(tokens[i]) {
 7                 case "+": 
 8                     s.push(s.pop() + s.pop());
 9                     break;
10                 case "-":
11                     a = s.pop();
12                     b = s.pop();
13                     s.push(b - a);
14                     break;
15                 case "*": 
16                     s.push(s.pop() * s.pop());
17                     break;
18                 case "/": 
19                     a = s.pop();
20                     b = s.pop();
21                     s.push(b / a);
22                 break;
23                 default: s.push(Integer.parseInt(tokens[i]));
24             }
25         }
26         return s.pop();
27     }
28 }

Next challenges: Expression Add Operators

Leetcode 150. Evaluate Reverse Polish Notation

原文:https://www.cnblogs.com/Deribs4/p/8454409.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!