一、题目地址
https://leetcode-cn.com/problems/basic-calculator-ii/
二、具体代码
var calculate = function(s) {
s = s.trim();
const stack = new Array();
let preSign = '+';
let num = 0;
const n = s.length;
for (let i = 0; i < n; ++i) {
if (/^\d+$/.test(s[i]) && s[i] !== ' ') {
num = num * 10 + Number(s[i]);
}
if (!(/^\d+$/.test(s[i])) || i === n - 1) {
switch (preSign) {
case '+':
stack.push(num);
break;
case '-':
stack.push(-num);
break;
case '*':
stack.push(stack.pop() * num);
break;
default:
stack.push(Math.floor(stack.pop() / num));
}
preSign = s[i];
num = 0;
}
}
let ans = 0;
while (stack.length) {
ans += stack.pop();
}
return ans;
};
let res = calculate('2+3/4');
console.log(res);