• Leetcode练习(Python):字符串类:第227题:基本计算器 II:实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式仅包含非负整数,+,


    题目:
    基本计算器 II:实现一个基本的计算器来计算一个简单的字符串表达式的值。  字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格  。 整数除法仅保留整数部分。

    说明:

    • 你可以假设所给定的表达式都是有效的。
    • 请不要使用内置的库函数 eval
    思路:
    使用栈来实现,之前在做课设时候做过,因为不考虑括号和小数点的问题,比较简单。
    程序:
    class Solution:
        def calculate(self, s: str) -> int:
            if not s:
                return 0
            length = len(s)
            if length == 1:
                return int(s)
            myStack = []
            data = 0
            sign = '+'
            for index in range(len(s)):
                if s[index].isdigit():
                    data = data * 10 + int(s[index])
                if s[index] in '+-*/' or index == length - 1:
                    if sign == '+':
                        myStack.append(data)
                    elif sign == '-':
                        myStack.append(-data)
                    elif sign == '*':
                        myStack.append(myStack.pop() * data)
                    else:
                        data_before = myStack.pop()
                        if data_before > 0:
                            myStack.append(data_before//data)
                        elif data_before < 0:
                            myStack.append(-(abs(data_before)//data))
                        else:
                            myStack.append(0)
                    sign = s[index]
                    data = 0
        return sum(myStack)
  • 相关阅读:
    EOF ---shell编程
    Linux错误代码含义
    linux连接sybase数据库-isql
    CH7-WEB开发(集成在一起)
    [转]ASP.NET MVC 入门10、Action Filter 与 内置的Filter实现(实例-防盗链)
    [转]ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍)
    [转]ASP.NET MVC 入门8、ModelState与数据验证
    [转]ASP.NET MVC 入门7、Hellper与数据的提交与绑定
    [转]ASP.NET MVC 入门6、TempData
    [转]ASP.NET MVC 入门5、View与ViewData
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12851403.html
Copyright © 2020-2023  润新知