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