题解 | #四则运算# Python3 递归解法
四则运算
https://www.nowcoder.com/practice/9999764a61484d819056f807d2a91f1e
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])