Python 3 递归解法:
面试的时候不太敢直接用eval()。。。参考大佬们的c++写了个递归的python解法:
st = input().replace('[','(').replace(']',')').replace('{','(').replace('}',')')
def func(i):
    nums = []
    flag = None
    while i < len(st):
        num = 0
        if st[i] == '(':
            i, num = func(i+1)
        if flag == ')': 
            return i, sum(nums)
        
        while i < len(st) and st[i].isdigit():
            num = num*10 + int(st[i])
            i += 1
        if not nums: 
            nums.append(num) 
        if flag == '+':
            nums.append(num)
        elif flag == '-':
            nums.append(-num)
        elif flag == '*':
            nums.append(nums.pop()*num)
        elif flag == '/':
            nums.append(nums.pop()//num)        
        if i < len(st): flag = st[i] 
        i += 1
    return i, sum(nums)
        
print(func(0)[1])