4.1.4—栈—Evaluate Reverse Polish Notation
2017-08-06 16:03
211 查看
描述
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
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
#include<iostream> #include<string> #include<stack> #include<vector> #include <sstream> using namespace std; bool Isoperate(string str) { if (str == "+" || str == "-" || str == "*" || str == "/") return true; else return false; } int EvaluateReversePolish(vector<string> str) { stack<string> mystack; for (int i = 0; i<str.size(); i++) { if (!Isoperate(str[i])) mystack.push(str[i]); else { int x = atoi(mystack.top().c_str()); mystack.pop(); int y = atoi(mystack.top().c_str()); mystack.pop(); if (str[i] == "+") x = x + y; else if (str[i] == "-") x = x - y; else if (str[i] == "*") x = x*y; else if (str[i] == "/") x = y / x; //=== string temp; ostringstream oss; oss << x; temp = oss.str(); mystack.push(temp); } } return atoi(mystack.top().c_str()); } int main() { vector<string > str; str.push_back("4"); str.push_back("13"); str.push_back("5"); str.push_back("/"); str.push_back("+"); int res = EvaluateReversePolish(str); cout << res << endl; }
相关文章推荐
- 4.1.4 Evaluate Reverse Polish Notation
- 【LeetCode】Evaluate Reverse Polish Notation
- LeetCode Evaluate Reverse Polish Notation
- Leetcode-Evaluate Reverse Polish Notation-java
- [LeetCode] Evaluate Reverse Polish Notation [2]
- LeetCode第一题:Evaluate Reverse Polish Notation
- 150. Evaluate Reverse Polish Notation
- 80_leetcode_Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- 【Leetcode长征系列】Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- LeetCode—Evaluate Reverse Polish Notation 逆波兰写法的解析
- Evaluate Reverse Polish Notation
- leetcode - [2]Evaluate Reverse Polish Notation
- 【LeetCode刷题Java版】Evaluate Reverse Polish Notation(计算逆波兰表达式)
- LeetCode:《Evaluate Reverse Polish Notation》
- LeetCode OJ 之 Evaluate Reverse Polish Notation (求逆波兰表达式的值)
- [C++]LeetCode: 98 Evaluate Reverse Polish Notation
- Leetcode#150 Evaluate Reverse Polish Notation
- Leetcode: Evaluate Reverse Polish Notation