给你一个字符串表达式 s
,请你实现一个基本计算器来计算并返回它的值。
整数除法仅保留整数部分。
class Solution: def calculate(self, s): stack = [] pre_op = '+' num = 0 for i, each in enumerate(s): if each.isdigit(): num = 10 * num + int(each)#如果是连续的数字 if i == len(s) - 1 or each in '+-*/': if pre_op == '+': stack.append(num)#对于第一个数,先放进去再说 elif pre_op == '-': stack.append(-num) elif pre_op == '*': stack.append(stack.pop() * num) elif pre_op == '/': top = stack.pop() if top < 0: stack.append(int(top / num)) else: stack.append(top // num) pre_op = each#把这时候遍历到的符号赋给preop num = 0 return sum(stack)