题解 | #四则运算#
四则运算
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)
曼迪匹艾公司福利 145人发布