题目如下:

解题:
class Solution {
public:
long long legalExp(string str) {
stack<long long>res;
long long a,b,sum=0;
for(int i =0;i<str.length();i++){
if(str[i]=='+'||str[i]=='-'||str[i]=='*'){
a = res.top();
res.pop();
b = res.top();
res.pop();
if(str[i]=='-')res.push(b-a);//顺序是b-a
else if(str[i]=='*')res.push(a*b);
else res.push(a+b);
}
else if(str[i]=='#'){
res.push(sum);
sum = 0;
}
else{
sum = sum*10+str[i]-'0';//把字符串表示的数字转换成长整型表示的数字
}
}
return res.top();//因为每次+,-,*运算之后,栈中就只有一个元素
}
};