题目
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))