Evaluate Reverse Polish Notation
来源:互联网 发布:中科大还有网络教育吗 编辑:程序博客网 时间:2024/05/29 03:14
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
逆波兰表达式是一个经典的堆栈数据结构例程。
用stack容器适配器来完成堆栈操作,注意 “-” 与 “-n” 的区别。
class Solution {public: int evalRPN(vector<string> &tokens) { stack<int> intstack; for(int i = 0; i < tokens.size(); i++) { istringstream iss(tokens[i]); int num; char ch = tokens[i][0]; if((ch == '-' && (tokens[i].size() != 1)) || isdigit(ch)) { iss >> num; intstack.push(num); } else { int a, b; a = intstack.top(); intstack.pop(); b = intstack.top(); intstack.pop(); int c; switch(ch) { case '+': c = a + b; break; case '-': c = b - a; break; case '*': c = a * b; break; case '/': c = b / a; break; default: break; } intstack.push(c); } } return intstack.top(); }};
0 0
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Little and Big Endian
- 20140410-1 翻译学习作品
- Pascal's Triangle -- LeetCode
- 从零开始学android<ImageView和ImageButton的使用.十.>
- Pascal's Triangle II -- LeetCode
- Evaluate Reverse Polish Notation
- Python3.2官方文档教程---Set集合
- 水货的学习笔记之~java的按需输入与输出
- python 保存HTML时UTF-8问题
- Eclipse安装Maven插件
- 地方的第三方的身份的身份斯蒂芬
- [POJ 1639] 单度限制最小生成树
- python 解析HTML(附通过例子)
- hdoj2045 不容易系列之(3)—— LELE的RPG难题