Member-only story

Leetcode 227 — Facebook Interview Question

Y Tech
Jun 18, 2023

--

class Solution:
def calculate(self, s: str) -> int:
stack = []
num = 0
prev_op = '+'

for index, char in enumerate(s):
if char.isdigit():
num = num * 10 + int(char)
if index == len(s)-1 or char in ['+', '-', '*', '/']:
if prev_op == '+':
stack.append(num)
if prev_op == '-':
stack.append(-num)
if prev_op == '*':
prev_num = stack.pop()
num = prev_num * num
stack.append(num)
if prev_op == '/':
prev_num = stack.pop()
num = int(prev_num / num)
stack.append(num)
num = 0
prev_op = char
return sum(stack)

--

--

Y Tech
Y Tech

No responses yet