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