python leetcode 227. Basic Calculator II
阿新 • • 發佈:2018-12-22
class Solution(object):
def calculate(self, s):
"""
:type s: str
:rtype: int
"""
def helper(op, val):
if op == '+':
stack.append(val)
elif op == '-':
stack.append(-val)
elif op == '*' :
stack.append(stack.pop() * val)
elif op == '/':
l, r = stack.pop() , val
if l * r < 0 and l % r != 0:
stack.append(l // r + 1)
else:
stack.append(l // r)
stack, val, op = [], 0, '+'
for i in range(len(s)):
if s[i].isdigit():
val = val * 10 + int(s[i])
elif s[i] in '/*-+':
helper(op, val)
op, val = s[i], 0
helper(op, val)
return sum(stack)