波兰表达式问题
2015-09-14 20:11
253 查看
原题:求逆波兰表达式的值,在逆波兰表达式中,其有效的运算符号+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。
["2","1","+","3","*"] -> ((2+1) * 3) -> 9
["4","13","5","/","+"] -> (4 + (13 / 5)) -> 6
["2","1","+","3","*"] -> ((2+1) * 3) -> 9
["4","13","5","/","+"] -> (4 + (13 / 5)) -> 6
int evalRPN(vector<string>& tokens) { stack<string> s; for(auto tok : tokens) { if(!is_operator(tok)) { s.push(tok); } else { int y = stoi(s.top()); s.pop(); int x = stoi(s.top()); s.pop(); if(tok[0] == '+') x += y; else if(tok[0] == '-') x -= y; else if(tok[0] == '*') x *= y; else x /= y; s.push(to_string(x)); } } return stoi(s.top()); } bool is_operator(const string &op) { return op.length() == 1 && string("+-*/").find(op) != string::npos; }
相关文章推荐
- 瀑布模型和敏捷方法的区别
- Visual C++数据库编程(ODBC)
- 关于memcache和memcached的一些理解
- Libav、FFmpeg、mplayer、VLC开源项目、FFDshow
- 大数据的存取
- 几种工厂模式的区别
- heap和stack有什么区别
- heap和stack有什么区别
- heap和stack有什么区别
- heap和stack有什么区别
- spring + tomcat + JNDI 数据源配置
- 可变参数
- Unity物理引擎:Charactor Controller简介
- 北大老师教你如何读大学
- hdu5443(2015长春赛区网络赛1007)暴力
- js匿名函数
- java大数操作
- IOS 学习---通过block自定义button的点击事件
- 即时类应用Socket和ServerSocket
- LNMP环境搭建——Nginx篇