leetcode 刷题之路 2 Evaluate Reverse Polish Notation
2014-07-20 11:20
344 查看
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
逆波兰表达式的求解问题,设置一个栈,遍历逆波兰表达式,遇到数字则入栈,遇到操作符后,栈顶的两个数字出栈,用这两个数字和操作符进行运算所得结果入栈,执行这个操作过程直到遍历完成,最后栈顶的数字就是要求的结果。
my accepted answer:
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
逆波兰表达式的求解问题,设置一个栈,遍历逆波兰表达式,遇到数字则入栈,遇到操作符后,栈顶的两个数字出栈,用这两个数字和操作符进行运算所得结果入栈,执行这个操作过程直到遍历完成,最后栈顶的数字就是要求的结果。
my accepted answer:
class Solution { public: int evalRPN(vector<string> &tokens) { stack<int> ss; for (vector<string>::iterator iter = tokens.begin(); iter != tokens.end(); iter++) { if (*iter == "+" || *iter == "-" || *iter == "*" || *iter == "/") { int num1 = ss.top(); ss.pop(); int num2 = ss.top(); ss.pop(); switch ((*iter)[0]) { case '+': ss.push(num1 + num2); break; case '-': ss.push(num2 - num1); break; case '*': ss.push(num2 * num1); break; case '/': ss.push(num2 / num1); break; } } else ss.push(atoi(iter->c_str())); } int ret = ss.top(); ss.pop(); return ret; } };
相关文章推荐
- leetcode 144: Evaluate Reverse Polish Notation
- leetcode 150 —— Evaluate Reverse Polish Notation
- 【LeetCode】Evaluate Reverse Polish Notation(逆波兰表达式求值) -(Linkedin) Medium ++
- [leetcode] Evaluate Reverse Polish Notation
- [LeetCode] 150. Evaluate Reverse Polish Notation
- leetcode_Evaluate Reverse Polish Notation
- leetcode150 Evaluate Reverse Polish Notation
- 【LeetCode】Evaluate Reverse Polish Notation
- Leetcode Evaluate Reverse Polish Notation
- LeetCode- Evaluate Reverse Polish Notation
- LeetCode: 150_Evaluate Reverse Polish Notation | 分析逆波兰式 | Medium
- leetcode Evaluate Reverse Polish Notation
- leetcode题解-150. Evaluate Reverse Polish Notation
- LeetCode--150. Evaluate Reverse Polish Notation
- [LeetCode]150 Evaluate Reverse Polish Notation
- LeetCode: Reverse Words in a String:Evaluate Reverse Polish Notation
- leetcode-150. Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation——LeetCode
- [LeetCode] Evaluate Reverse Polish Notation