Algrithm

Leet Code 227. Basic Calculator II

Sssspinach 2023. 2. 25. 14:53
class Solution:
    def calculate(self, s: str) -> int:
        sta = []
        s = s.replace(" ", "")
        def calc(num, op):
            if op == '+':
                sta.append(num)
            elif op == '-':
                sta.append(-num)
            elif op == '*':
                sta.append(sta.pop() * num)
            else:
                sta.append(int(sta.pop() / num))

        num, operator = 0, '+'

        for idx, val in enumerate(s):
            if val in '+-*/':
                calc(num, operator)
                num = 0
                operator = val
            else:
                num = num * 10 + int(val)
        calc(num, operator)
        return sum(sta)