[leetcode-150]Evaluate Reverse Polish Notation(c++)
2015-08-20 15:25
573 查看
问题描述:
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
Show Tags
Show Similar Problems
分析:这道题比较普通,倒是c++的语法折磨了我好长,c++里面不能用switch来比较string,也就是switch(string)是错误的。于是我想到strcmp,但是也是错误的,后来改成==就可以了
代码如下:16ms
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
Show Tags
Show Similar Problems
分析:这道题比较普通,倒是c++的语法折磨了我好长,c++里面不能用switch来比较string,也就是switch(string)是错误的。于是我想到strcmp,但是也是错误的,后来改成==就可以了
代码如下:16ms
[code]class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> stack; int size = tokens.size(); for(int i = 0;i<size;i++){ string str = tokens[i]; int first; int second; if(str=="+"){ second = stack.top();stack.pop(); first = stack.top();stack.pop(); stack.push(second+first); }else if(str=="-"){ second = stack.top();stack.pop(); first = stack.top();stack.pop(); stack.push(first-second); }else if(str=="*"){ second = stack.top();stack.pop(); first = stack.top();stack.pop(); stack.push(first*second); }else if(str=="/"){ second = stack.top();stack.pop(); first = stack.top();stack.pop(); stack.push(first/second); }else{ //为整数,解析并压栈 int val = atoi(str.c_str()); stack.push(val); } } return stack.top(); } };
相关文章推荐
- Programming in Lua读书笔记
- lua中关于字符串的操作总结
- lua 创建listview
- 设计模式实例(Lua)笔记之五(Prototype 模式)
- 设计模式实例(Lua)笔记之四(Builder 模式)
- 设计模式实例(Lua)笔记之三(Singleton单例模式)
- 【LeetCode-面试算法经典-Java实现】【151-Evaluate Reverse Polish Notation(计算逆波兰式)】
- 【LeetCode-面试算法经典-Java实现】【150-Evaluate Reverse Polish Notation(计算逆波兰式)】
- 设计模式实例(Lua)笔记之二(AbstractFactory抽象工厂模式)
- 设计模式实例(Lua)笔记之一(Factory Method工厂方法模式)
- lua 可变参数
- tolua++的一些api的
- Lua闭包的理解
- Python游戏服务器开发日记(三)用greenlet模拟lua coroutine的研究
- ngx_lua模块学习笔记
- pcall
- Lua 语言基础
- UVA 327 -Evaluating Simple C Expressions(栈)
- as3.0用asxls导出xls文件为luaTabel
- ulua+PureMVC框架简单热更新使用-后续web服务器篇