224. Basic Calculator
这道题在无数次修修补补的过程中也算是AC了,自己的答案实在是太冗长,就不贴在这了。找了个简洁一些的答案。
class Solution(object):
def calculate(self, s):
res, num, sign, stack = 0, 0, 1, []
for ss in s:
if ss.isdigit():
num = 10*num + int(ss)
elif ss in ["-", "+"]:
res += sign*num
num = 0
sign = [-1, 1][ss=="+"]
elif ss == "(":
stack.append(res)
stack.append(sign)
sign, res = 1, 0
elif ss == ")":
res += sign*num
res *= stack.pop()
res += stack.pop()
num = 0
return res + num*sign