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