计算逆波兰式(后缀表达式)的值
运算符仅包含"+","-","*"和"/",被操作数是整数
保证表达式合法,除法时向下取整。
数据范围:表达式的长度满足: n \le 10000n≤10000
进阶:空间复杂度 O(n)O(n) , 时间复杂度 O(n)O(n)
计算逆波兰式(后缀表达式)的值
运算符仅包含"+","-","*"和"/",被操作数是整数
保证表达式合法,除法时向下取整。
数据范围:表达式的长度满足: n \le 10000n≤10000
进阶:空间复杂度 O(n)O(n) , 时间复杂度 O(n)O(n)
class Solution {
public:
int evalRPN(vector<string> &tokens) {
stack<int> numbers;
for(auto token : tokens)
{
if(token == "+" || token == "-" || token == "*" || token == "/")
{
int a,b,res;
b=numbers.top();numbers.pop();
a=numbers.top();numbers.pop();
if(token == "+")
res=a+b;
else if(token == "-")
res=a-b;
else if(token == "*")
res=a*b;
else
res=a/b;
numbers.push(res);
}
else
{
stringstream ss;
ss<<token;
int temp;
ss>>temp;
numbers.push(temp);
}
}
return numbers.top();
}
};