leetcode150 Evaluate Reverse Polish Notation
2016-07-22 11:18
399 查看
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are
Some examples:
计算逆波兰表达式,使用一个栈来存储操作数字,遍历输入的链表。
如果为数字,直接push到栈内,如果为操作符号,就把栈顶的两个元素pop出来运算一下。
运算的结果push到栈内。
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
计算逆波兰表达式,使用一个栈来存储操作数字,遍历输入的链表。
如果为数字,直接push到栈内,如果为操作符号,就把栈顶的两个元素pop出来运算一下。
运算的结果push到栈内。
public class Solution { public int evalRPN(String[] tokens) { int result = 0; Stack<Integer> stack = new Stack<Integer>(); String operators = "+-*/"; for(int i=0; i<tokens.length;i++){ if (operators.contains(tokens[i])){ int b = stack.pop(); int a = stack.pop(); stack.push(calculate(a,b,tokens[i])); }else{ stack.push(Integer.valueOf(tokens[i])); } } result = stack.pop(); return result; } public int calculate(int a, int b, String operator){ char op = operator.charAt(0); switch (op) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': return a / b; } return 0; } }
相关文章推荐
- leetcode150 Evaluate Reverse Polish Notation
- Evaluation
- sublime 设置自动把某个文件按指定语法解析
- LeetCode - 150. Evaluate Reverse Polish Notation
- 编写C模块供Lua使用
- openresty-lua代码的语法检查
- skynet特性
- lua的require
- leetcode 150. Evaluate Reverse Polish Notation java 算法
- lua实现伪多态继承
- lua语言的几点技巧
- Sublime Text 2 Lua 配置
- sublime text 2安装插件 lua
- lua协程的一个应用
- Lua - table 当作 dictionary 乱序
- Lua中的模块与module函数详解
- 从零开始制作2048游戏
- Lua - table 稀疏列表(Cannot serialise table: excessively sparse array)报错
- UVA 327 Evaluating Simple C Expressions
- Lua 的 .NET 实现:NeoLua