【Leetcode】计算器

思路

用栈来完成;

  • 考虑到运算关系,先乘除后加减;
  • 此外,一般计算式首个数字式正数;
  • 判断字符是否为数字,str.isdigit()
  • 字符转数字:ord(str) - ord(‘0’)
  • 遇到加减符,压栈数字;遇到乘除符,先运算再压栈
  • 遍历完后,再将栈内数字求和

代码

class Solution:
    def calculate(self, s: str) -> int:
        stack = []
        n = len(s)
        preSign = '+'
        num = 0
        for i in range(n):
            if s[i] != ' ' and s[i].isdigit():
                num = num * 10 + ord(s[i]) - ord('0')

            if i == n - 1 or s[i] in '+-*/':
                if preSign == '+':
                    stack.append(num)
                elif preSign == '-':
                    stack.append(-num)
                elif preSign == '*':
                    stack.append(stack.pop() * num)
                else:
                    stack.append(stack.pop // num)
                
                preSign = s[i]
                num = 0
        
        return sum(stack)

相关推荐

  1. Leetcode计算器

    2023-12-19 06:42:02       65 阅读
  2. LeetCode 224:基本计算器

    2023-12-19 06:42:02       59 阅读
  3. LeetCode 227. 基本计算器 II

    2023-12-19 06:42:02       26 阅读
  4. LeetCode】2620. 计数器

    2023-12-19 06:42:02       59 阅读
  5. Leetcode】772.基本计算器III (Hard)

    2023-12-19 06:42:02       58 阅读
  6. leetcode面试经典150题】56. 基本计算器(C++)

    2023-12-19 06:42:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-19 06:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-19 06:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-19 06:42:02       82 阅读
  4. Python语言-面向对象

    2023-12-19 06:42:02       91 阅读

热门阅读

  1. 数据的输入输出(C++)

    2023-12-19 06:42:02       58 阅读
  2. Docker (Dockerfile运行jar) -day 05

    2023-12-19 06:42:02       64 阅读
  3. .net web API的文件传输(上传和下载)客户端winform

    2023-12-19 06:42:02       48 阅读
  4. 【Node】npm使用手册

    2023-12-19 06:42:02       60 阅读
  5. 文件相关工具类Utils(WORD,PDF,PNG)

    2023-12-19 06:42:02       53 阅读
  6. 第六章--- 实现微服务:匹配系统(下)

    2023-12-19 06:42:02       40 阅读
  7. 在iframe怎么把外面的dialog关掉

    2023-12-19 06:42:02       57 阅读
  8. IDE:DevEco Studio

    2023-12-19 06:42:02       69 阅读