#include <stack>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 给定一个后缀表达式,返回它的结果
* @param str string字符串
* @return long长整型
*/
long long legalExp(string str)
{
// write code here
int n = str.length();
long long temp = 0;
stack<long long> stack;
for(int i = 0; i < n; i++)
{
if(str[i] >= '0' && str[i] <= '9')
{
temp = temp * 10 + (str[i] - '0');
}
else if(str[i] == '#')
{
stack.push(temp);
temp = 0;
}
else
{
long long num2 = stack.top();
stack.pop();
long long num1 = stack.top();
stack.pop();
if(str[i] == '+')
{
stack.push(num1 + num2);
}
else if(str[i] == '-')
{
stack.push(num1 - num2);
}
else if (str[i] == '*')
{
stack.push(num1 * num2);
}
}
}
return stack.top();
}
};