Basic Calculator II LeetCode solution in Python

1
# Runtime: 201 ms (Top 18.42%) | Memory: 15.8 MB (Top 36.40%)
2
class Solution:
3
def calculate(self, s: str) -> int:
4
stack = []
5
currentNumber = 0
6
operator = "+"
7
operations = "+-/*"
8
for i in range(len(s)):
9
ch = s[i]
10
if ch.isdigit():
11
currentNumber = currentNumber * 10 + int(ch)
12

13
if ch in operations or i == len(s) - 1:
14
if operator == "+":
15
stack.append(currentNumber)
16

17
elif operator == "-":
18
stack.append(-currentNumber)
19

20
elif operator == "*":
21
stack.append(stack.pop() * currentNumber)
22

23
elif operator == "/":
24
stack.append(int(stack.pop() / currentNumber))
25

26
currentNumber = 0
27
operator = ch
28

29
return sum(stack)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0