您的位置:首页 > 编程语言 > Lua

LeetCode---Evaluate Reverse Polish Notation

2015-11-14 15:57 330 查看
题目大意:给出一个后缀表达式,计算出其结果。

算法思想:

设置一个操作数栈,然后开始扫描容器如果当前扫描到的元素是操作数则将其放入栈中,如果当前扫描到的元素是运算符则从栈中取出两个元素进行计算然后将结果放入栈中,按此规律知道容器扫描结束。最后栈中将只有一个结果,机后缀表达式的结果将其返回即可。

代码如下:

class Solution {
public:
int evalRPN(vector<string>& tokens) {
if(tokens.size()==0) return 0;
stack<int> nums;
for(string s:tokens){
if(s!="+"&&s!="-"&&s!="*"&&s!="/"){
nums.push(atoi(s.c_str()));
}
else{
int b=nums.top();
nums.pop();
int a=nums.top();
nums.pop();
if(s=="+")
nums.push(a+b);
if(s=="-")
nums.push(a-b);
if(s=="*")
nums.push(a*b);
if(s=="/")
nums.push(a/b);
}
}
return nums.top();
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: