LeetCode: 150_Evaluate Reverse Polish Notation | 分析逆波兰式 | Medium
2014-09-25 19:53
471 查看
题目: Evaluate Reverse Polish Notation
简单题,借助一个stack就可以实现,将数值入栈,遇操作符时将两个数值出栈,计算后再入栈,如此即可实现。
Evaluatethe 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
简单题,借助一个stack就可以实现,将数值入栈,遇操作符时将两个数值出栈,计算后再入栈,如此即可实现。
int evalRPN(vector<string> &tokens) { stack<int> stokens; for (int i = 0; i < tokens.size(); ++ i) { if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") { int x1 = stokens.top(); stokens.pop(); int x2 = stokens.top(); stokens.pop(); int x3 = caculate(x1, x2, tokens[i]); //计算之后再入栈 stokens.push(x3); } else { stokens.push(atoi(tokens[i].c_str())); } } return stokens.top(); }
int caculate(int x1, int x2, string s) { int result; if (s == "+") result = x1 + x2; else if (s == "-") result = x1 - x2; else if (s == "*") result = x1 * x2; else { if (x1 >= x2) result = x1 / x2; else result = x2 / x1; } return result; }
相关文章推荐
- 【Leetcode-medium-150】Evaluate Reverse Polish Notation
- Leetcode 150:Evaluate Reverse Polish Notation(计算逆波兰表达式) --java实现
- 【LeetCode-面试算法经典-Java实现】【150-Evaluate Reverse Polish Notation(计算逆波兰式)】
- Leetcode 150 Evaluate Reverse Polish Notation 反向波兰表示法求值
- 【LeetCode】Evaluate Reverse Polish Notation(逆波兰表达式求值) -(Linkedin) Medium ++
- Leetcode 150 Evaluate Reverse Polish Notation (求值逆波兰表达式)
- [Leetcode 150, Medium] Evaluate Reverse Polish Notation
- [LeetCode]Evaluate Reverse Polish Notation(逆波兰式的计算)
- Java for LeetCode 150 Evaluate Reverse Polish Notation
- leetcode[150]Evaluate Reverse Polish Notation
- LeetCode-Evaluate Reverse Polish Notation-逆波兰式-栈的应用
- leetcode[150]:Evaluate Reverse Polish Notation
- Leetcode (10) Evaluate Reverse Polish Notation (计算逆波兰表示法多项式)
- LeetCode(150) Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation - LeetCode 150
- 【LeetCode刷题Java版】Evaluate Reverse Polish Notation(计算逆波兰表达式)
- Leetcode#150 Evaluate Reverse Polish Notation
- LeetCode150:Evaluate Reverse Polish Notation
- [Leetcode] Evaluate Reverse Polish Notation 逆波兰表达式
- leetcode[150] Evaluate Reverse Polish Notation