每日一题力扣227

给你一个字符串表达式 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)

 

posted @ 2021-03-17 13:38  小千北同学超爱写代码  阅读(108)  评论(0)    收藏  举报