class Solution:
def calculate(self, s: str) -> int:
stack = []
num = 0
prev_op = '+'
def calc(c, num):
if c == '+':
stack.append(num)
elif c == '-':
stack.append(-num)
elif c == '*':
stack.append(stack.pop() * num)
elif c == '/':
stack.append(int(stack.pop() / num))
for c in s:
if c.isdigit():
num = num * 10 + int(c)
elif c in ['+', '-', '*', '/']:
calc(prev_op, num)
num = 0
prev_op = c
calc(prev_op, num)
return sum(stack)