Basic Calculator II
Last updated
Last updated
class Solution:
def calculate(self, s: str) -> int:
stack = []
numbers = set("0123456789")
num = 0
operands = "*+-/"
sign = '+'
for i in range(len(s)):
if s[i] in numbers:
num = 10*num + int(s[i])
if s[i] in operands or i == len(s)-1:
if sign == '+':
stack.append(num)
elif sign == '-':
num*=-1
stack.append(num)
elif sign == '*':
prev = stack.pop()
stack.append(prev*num)
elif sign == '/':
prev = stack.pop()
stack.append(int(prev/num))
num = 0
sign = s[i]
return sum(stack)