码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 150. Evaluate Reverse Polish Notation

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

标签:hal   https   ++   int   val   ota   技术   not   ack   

技术分享图片

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

标签:hal   https   ++   int   val   ota   技术   not   ack   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!