题目 227基本计算器 II 题目链接 官方题解 代码记录 class Solution: def calculate(self, s: str) -> int: s=s.replace(' ','') import string digits=string.digits stack=[] pre_sign='+' cur=[] for i in range(len(s)): si=s[i] if si in digits: cur.append(si) if si not in digits or i==len(s)-1: cur_str=''.join(cur) cur=[] if pre_sign=='-': stack.append(-int(cur_str)) else: stack.append(int(cur_str)) if pre_sign in ['*','/']: n2=stack.pop() n1=stack.pop() cur_num=int(eval(str(n1)+pre_sign+str(n2))) stack.append(cur_num) pre_sign=si return int(sum(stack))