Leetcode || Evaluate Reverse Polish Notation
来源:互联网 发布:目前最好的淘宝客程序 编辑:程序博客网 时间:2024/06/06 03:38
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are +, -, *, /. Each operand may be an integer or another expression.
Some examples:
[“2”, “1”, “+”, “3”, ““] -> ((2 + 1) 3) -> 9
[“4”, “13”, “5”, “/”, “+”] -> (4 + (13 / 5)) -> 6
package cc.stack.application;import java.util.Stack;class Solution { public int evalRPN(String[] tokens) { if(tokens == null || tokens.length == 0) return 0; Stack<Integer> stack = new Stack<Integer>(); for(int i=0; i<tokens.length; i++) { if(tokens[i].matches("\\d+") || tokens[i].matches("-\\d+")) stack.push(Integer.valueOf(tokens[i])); else if(tokens[i].equals("+") || tokens[i].equals("-") || tokens[i].equals("*") || tokens[i].equals("/")) { int stack_a = 0; int stack_b = 0; int c = 0; if(!stack.isEmpty()) { stack_a = stack.pop(); } else { return 0; } if(!stack.isEmpty()) { stack_b = stack.pop(); } else { return 0; } if(tokens[i].equals("+")) c = stack_b + stack_a; else if(tokens[i].equals("-")) c = stack_b - stack_a; else if(tokens[i].equals("*")) c = stack_b * stack_a; else if(tokens[i].equals("/")) c = stack_b / stack_a; stack.push(c); } } if(!stack.empty()) return stack.pop(); else return 0; }}public class Main1 { public static void main(String[] args) { Solution s = new Solution(); String[] tokens = {"18"}; System.out.println(s.evalRPN(tokens)); }}
0 0
- Evaluate Reverse Polish Notation | leetcode
- leetcode-Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- LeetCode - Evaluate Reverse Polish Notation
- LeetCode | Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation (LeetCode)
- leetcode: Evaluate Reverse Polish Notation
- Leetcode Evaluate Reverse Polish Notation
- [LeetCode] Evaluate Reverse Polish Notation
- [LeetCode] Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation -- LeetCode
- 【LeetCode】Evaluate Reverse Polish Notation
- LeetCode-Evaluate Reverse Polish Notation
- LeetCode:Evaluate Reverse Polish Notation
- LeetCode Evaluate Reverse Polish Notation
- Leetcode:Evaluate Reverse Polish Notation
- Android特效 五种Toast详解
- Codeforces Round #341 (Div. 2) C. Wet Shark and Flowers (期望)
- Hadoop相关命令中的【--config configdir】
- 2015年10个Pythoner必须了解的Python库
- 利用AOP获取自定义标签的参数以及方法的参数
- Leetcode || Evaluate Reverse Polish Notation
- swift-闭包
- Android 清除canvas内容
- Java异常
- BZOJ 1014 JSOI2008 火星人prefix Splay+Hash+二分
- java--万年历
- c++对象作为函数参数
- 冒泡排序
- 二叉排序树_插入+删除+查找