当前位置: 首页 > news >正文

【Leetcode】计算器

思路

用栈来完成;

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

代码

class Solution:def calculate(self, s: str) -> int:stack = []n = len(s)preSign = '+'num = 0for 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 = 0return sum(stack)
http://www.lryc.cn/news/262494.html

相关文章:

  • 巧妙的使用WPF中的资源
  • 多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测
  • 【AIGC重塑教育】AI大模型驱动的教育变革与实践
  • 【力扣100】2.两数相加
  • 算法leetcode|93. 复原 IP 地址(多语言实现)
  • TOGAF—架构(Architecture)项目管理
  • MVVM前端设计模式的发展与应用
  • redis:二、缓存击穿的定义、解决方案(互斥锁、逻辑过期)的优缺点和适用场景、面试回答模板和缓存雪崩
  • php的Url 安全的base64编码解码类
  • 安全CDN有什么作用,安全CDN工作原理是什么?
  • Mysql高可用|索引|事务 | 调优
  • 电机驱动开发
  • 基于PaddleNLP的深度学习对文本自动添加标点符号(一)
  • “Java已死、前端已凉”?尊嘟假嘟?
  • 双向无线功率传输系统MATLAB仿真
  • 火山引擎DataLeap:助你实现从数据研发1.0到数据研发3.0的跨越
  • DevOps 和人工智能 – 天作之合
  • 基于主动安全的AIGC数据安全建设
  • Java 程序的命令行解释器
  • 从事开发近20年,经历过各种技术的转变和进步
  • unet v2学习笔记
  • MQ入门—centos 7安装RabbitMQ 安装
  • 虾皮Shopee商品详情API:电商实时数据获取的关键
  • VUE中的8种常规通信方式
  • overleaf 加载pdf格式的矢量图时,visio 图片保存为pdf格式,如何确保pdf页面大小和图片一致
  • 西南科技大学数字电子技术实验四(基本触发器逻辑功能测试及FPGA的实现)预习报告
  • “新程序员”必须学会的8个GPT提问技术 | 抢免费注册DevChat名额
  • Flink系列之:大状态与 Checkpoint 调优
  • 七轴开源协作机械臂myArm视觉跟踪技术!
  • etcd初探