题解 | #四则运算#
四则运算
https://www.nowcoder.com/practice/9999764a61484d819056f807d2a91f1e
def helper(s): pre_sign = '+' num = 0 stack = [] while s: v = s[0] s.pop(0) if v.isdigit(): num = num*10 + int(v) if v in ['(', '[', '{']: num = helper(s) if not v.isdigit() or len(s)==0: if pre_sign == '+': stack.append(num) if pre_sign == '-': stack.append(-num) if pre_sign == '*': tmp = stack.pop() stack.append(tmp*num) if pre_sign == '/': tmp = stack.pop() stack.append(tmp/num) num = 0 pre_sign = v if v in [')', ']', '}']: break return sum(stack)