150. Evaluate Reverse Polish Notation 逆波兰式
来源:互联网 发布:c语言行列互换 编辑:程序博客网 时间:2024/04/30 03:16
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
Subscribe to see which companies asked this question
分析:
实现逆波兰式。
用栈就可以,注意数字可能是负数。
代码:
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> num;
stack<char> t;
for(int i=0;i<tokens.size();++i)
{
if(("+"==tokens[i])||("-"==tokens[i])||("*"==tokens[i])||("/"==tokens[i]))
{
int t2=num.top();num.pop();
int t1=num.top();num.pop();
if("+"==tokens[i]) num.push(t1+t2);
else if("-"==tokens[i]) num.push(t1-t2);
else if("*"==tokens[i]) num.push(t1*t2);
else if("/"==tokens[i]) num.push(t1/t2);
}
else
{
int temp=0;
string s=tokens[i];
for(int j=0;j<s.size();++j)
{
if(('0'<=s[j] && s[j]<='9'))
temp=temp*10+(s[j]-'0');
}
if(s[0]=='-') temp=temp*(-1);
// temp=(s[0]=='-')?(-1*temp)::temp;
num.push(temp);
}
}
return num.top();
}
};
- 150. Evaluate Reverse Polish Notation 逆波兰式
- 150. Evaluate Reverse Polish Notation(逆波兰式)
- Evaluate Reverse Polish Notation 逆波兰表达式
- 波兰式解析Evaluate Reverse Polish Notation
- LeetCode:150. Evaluate Reverse Polish Notation(逆波兰表达式)
- 栈&逆波兰150. Evaluate Reverse Polish Notation
- 150. Evaluate Reverse Polish Notation 逆波兰表达式
- 计算逆波兰式 Evaluate Reverse Polish Notation
- LeetCode | Evaluate Reverse Polish Notation(逆波兰式求值)
- 计算逆波兰式 (Evaluate Reverse Polish Notation)
- Evaluate Reverse Polish Notation--逆波兰式求值
- leetcode Evaluate Reverse Polish Notation(计算逆波兰表达式)
- Java Evaluate Reverse Polish Notation(逆波兰表达式)
- [Leetcode] Evaluate Reverse Polish Notation 逆波兰表达式
- leetcode_2 Evaluate Reverse Polish Notation 逆波兰表达式
- 【LintCode】Evaluate Reverse Polish Notation 逆波兰表达式求值
- 逆波兰表达式求值(Evaluate Reverse Polish Notation)
- evaluate-reverse-polish-notation(逆波兰表示求值)
- Python 带参主函数
- 关于在maven项目下,从一个jsp页面通过重定向跳转到另一个jsp页面时出现404的错误的解决方法
- PHP的多文件上传类
- HDOJ 1339 A Simple Task(简单数学题,暴力)
- 使用viewpager或者fragmentActivity等一些v4包下的类,当我们按F3时无法查看到源码,这个时候就需要我们关联该源码,该源码的关联与android源码的关联不一样。
- 150. Evaluate Reverse Polish Notation 逆波兰式
- Try my best to hug Ubuntu
- genymotion下载的模拟器无法用vm virtualbox启动的问题的解决方法
- python小模块----cookie
- 深入理解javascript原型和闭包 深入理解javascript原型和闭包(7)——原型的灵活性
- Map与HashMap,Hashtable,HashSet的区别
- 第七周上机实践项目-项目一-线段类-友元函数
- 窗口
- Android枚举类型(enum)替换方案