LeetCode 150. Evaluate Reverse Polish Notation
2014-05-29 06:13
411 查看
后缀表达式。
1. 用一个stack<int>维护数字栈,每碰到一个数字都将其压入栈中
2. 碰到操作符便将其弹出,同时弹出数字栈中的两个数字,再将计算结果压回栈中。
3. 最终栈顶元素即为所求
代码:
1. 用一个stack<int>维护数字栈,每碰到一个数字都将其压入栈中
2. 碰到操作符便将其弹出,同时弹出数字栈中的两个数字,再将计算结果压回栈中。
3. 最终栈顶元素即为所求
代码:
inline bool is_opeartor(const string& c) { return c.size()==1 && (c[0]=='+' || c[0]=='-' || c[0]=='*' || c[0]=='/'); } inline int string_to_int(const string& s) { int ret; stringstream ss; ss << s; ss >> ret; return ret; } int calculate(int op1, int op2, const string& operand) { if (operand[0] == '+') { return op1 + op2; } else if (operand[0] == '-') { return op1 - op2; } else if (operand[0] == '*') { return op1 * op2; } else // { return op1 / op2; } } int evalRPN(vector<string> &tokens) { stack<int> operand; for (size_t i = 0; i < tokens.size(); ++ i) { if (is_opeartor(tokens[i])) { int op2 = operand.top(); operand.pop(); int op1 = operand.top(); operand.pop(); operand.push( calculate(op1, op2, tokens[i]) ); } else { operand.push( string_to_int(tokens[i]) ); } } return operand.top(); }
相关文章推荐
- leetcode 150. Evaluate Reverse Polish Notation
- LeetCode-150. Evaluate Reverse Polish Notation (JAVA)逆波兰表达式求值
- [leetcode] 150. Evaluate Reverse Polish Notation
- [leetcode] 【栈】150. Evaluate Reverse Polish Notation
- [LeetCode]150. Evaluate Reverse Polish Notation
- Leetcode刷题记——150. Evaluate Reverse Polish Notation(计算逆波兰表达式)
- Leetcode 150. Evaluate Reverse Polish Notation (Medium) (cpp)
- leetcode 150.Evaluate Reverse Polish Notation
- Leetcode 150. Evaluate Reverse Polish Notation
- Leetcode 150. Evaluate Reverse Polish Notation
- [LeetCode] 150. Evaluate Reverse Polish Notation
- LeetCode:150. Evaluate Reverse Polish Notation(逆波兰表达式)
- LeetCode 150. Evaluate Reverse Polish Notation
- leetcode-150. Evaluate Reverse Polish Notation
- Leetcode 150. Evaluate Reverse Polish Notation
- LeetCode 150. Evaluate Reverse Polish Notation
- LeetCode 150. Evaluate Reverse Polish Notation(java)
- 【leetcode】150. Evaluate Reverse Polish Notation
- LeetCode——150. Evaluate Reverse Polish Notation
- leetcode 150. Evaluate Reverse Polish Notation