链接:https://ac.nowcoder.com/acm/contest/9556/C
来源:牛客网
给定牛牛一个后缀表达式s,计算它的结果,例如,1+1对应的后缀表达式为1#1#+,‘#’作为操作数的结束符号。
其中,表达式中只含有‘+’、’-‘、’*‘三种运算,不包含除法。
本题保证表达式一定合法,且计算过程和计算结果的绝对值一定不会超过10^{18}10
18
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 给定一个后缀表达式,返回它的结果
* @param str string字符串
* @return long长整型
*/
function solve( str ) {
// write code here
let s = [];
let i, temp = 0;
for(i = 0; i < str.length; i++) {
if(str[i] >= '0' && str[i] <= '9') {
temp *= 10;
temp += (str[i] - '0');
} else if(str[i] == '#') {
s.push(temp);
temp = 0;
} else {
let p1 = s.pop();
let p2 = s.pop();
if(str[i]=='+') {
s.push(p2+p1);
//break;
} else if (str[i] == "-") {
s.push(p2-p1);
//break;
}else {
s.push(p2*p1);
//break;
}
}
}
return s.pop();
}