#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 返回表达式的值
# @param s string字符串 待计算的表达式
# @return int整型
#
class Solution:
def solve(self , s ):
# write code here
li = []
i = num = 0
sign = "+"
size = len(s)
while (i < size):
c = s[i]
if '0' <= c <= '9':
num = 10 * num + int(c)
elif c == '(':
left = i
count = 1
while (count > 0):
i += 1
if (i > size - 1):
raise Exception("invalid expr")
if s[i] == '(':
count += 1
elif s[i] == ')':
count -= 1
num = self.solve(s[left+1:i])
if c in ('+', '-', '*') or i == size - 1:
if sign == '+':
li.append(num)
elif sign == '-':
li.append(-num)
elif sign == '*':
li[-1] *= num
else:
pass
sign = c
num = 0
i+=1
return sum(li)