class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
     
    long long legalExp(string str) {
        // write code here
        
        stack<long long>a;
        long long t=0,ans=0;
        for(long long i=0;i<str.size();i++){
          if(str[i]>='0'&&str[i]<='9'){
            t=t*10+str[i]-'0'; //转换数字
          }
          else if(str[i]=='#'){//遇到#号把数字进栈
            a.push(t);
            t=0;
          }
          else {  //剩下加减乘
          if(str[i]=='+'){
           long long t1=a.top();
           a.pop();
           long long t2=a.top();
           a.pop();
           //ans+=t1+t2;
           a.push(t1+t2);
          }
          else if(str[i]=='-'){
           long long t1=a.top();
           a.pop();
           long long t2=a.top();
           a.pop();
          // ans+=t2-t1;
           a.push(t2-t1);
          }
          else if(str[i]=='*'){
           long long t1=a.top();
           a.pop();
           long long t2=a.top();
           a.pop();
          // ans+=t2*t1;
           a.push(t2*t1);
          }
          } 
        }
         return a.top();
    }
};

注意 不开longlong会爆两个样例 同时t1和t2可以写在判断符号外面(