题解 | 牛牛与后缀表达式
牛牛与后缀表达式
https://www.nowcoder.com/practice/a1a4f178f6ff4188890e51da1cc8ce10
1.已知数字的输入格式为num#,所以可通过#来确定输入的数字。
2.由于所有的运算符都位于操作数之后,所以当遇到运算符时,将前面的两个数字进行对应的运算即可 。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 给定一个后缀表达式,返回它的结果
* @param str string字符串
* @return long长整型
*/
long long legalExp(string str) {
long ans = 0;
long now =0;
stack<long> nums;
for(char i:str){
if( i>='0' &&i<='9'){
now = now*10 + (i-'0');
}else if(i == '#'){
nums.push(now);
now = 0;
}else{
long x2 = nums.top();
nums.pop();
long x1 = nums.top();
nums.pop();
switch (i){
case '-':
nums.push(x1-x2);
break;
case '+':
nums.push(x1+x2);
break;
case '*':
nums.push(x1*x2);
break;
}
}
}
ans = nums.top();
return ans;
}
};
查看14道真题和解析