Basic Calculator II LeetCode solution in JavaScript

1
/**
2
* @param {string} s
3
* @return {number}
4
*/
5
var calculate = function (s) {
6
const n = s.length;
7
let currNum = 0,
8
lastNum = 0,
9
res = 0;
10
let op = "+";
11

12
for (let i = 0; i < n; i++) {
13
let currChar = s[i];
14

15
if (currChar !== " " && !isNaN(Number(currChar))) {
16
currNum = currNum * 10 + Number(currChar);
17
}
18

19
if ((isNaN(Number(currChar)) && currChar !== " ") || i === n - 1) {
20
if (op === "+" || op === "-") {
21
res += lastNum;
22
lastNum = op === "+" ? currNum : -currNum;
23
} else if (op === "*") {
24
lastNum *= currNum;
25
} else if (op === "/") {
26
lastNum =
27
Math.floor(Math.abs(lastNum) / currNum) * (lastNum < 0 ? -1 : 1);
28
}
29

30
op = currChar;
31
currNum = 0;
32
}
33
}
34

35
res += lastNum;
36
return res;
37
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0