• 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)
  • 相关阅读:
    maven只编译某个module
    idea中java文件不显示成class标识符
    服务系统要点
    shell命令
    shell中的exit
    性能统计方法
    聚类
    java 外部类可以访问嵌套类的私有成员
    SqlServer动态生成临时表
    优化JavaScript脚本的性能(转载)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12851403.html
Copyright © 2020-2023  润新知