#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 返回表达式的值
# @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)