-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolution.py
More file actions
24 lines (22 loc) · 736 Bytes
/
solution.py
File metadata and controls
24 lines (22 loc) · 736 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution:
def calculate(self, s: str) -> int:
number = 0
prev_operator = "+"
s += "+"
stack = []
for char in s:
if char.isdigit():
number = number*10 + int(char)
elif char == " ":
continue
else:
if prev_operator == "+":
stack.append(number)
elif prev_operator == "-":
stack.append(-number)
elif prev_operator == "*":
stack.append(number * stack.pop())
else:
stack.append(int(stack.pop() / number))
number, prev_operator = 0, char
return sum(stack)