给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。

整数除法仅保留整数部分。

示例 1:

输入:s = "3+2*2"
输出:7
示例 2:

输入:s = " 3/2 "
输出:1
示例 3:

输入:s = " 3+5 / 2 "
输出:5

提示:

1 <= s.length <= 3 * 105
s 由整数和算符 ('+', '-', '*', '/') 组成,中间由一些空格隔开
s 表示一个 有效表达式
表达式中的所有整数都是非负整数,且在范围 [0, 231 - 1] 内
题目数据保证答案是一个 32-bit 整数

这道题不带括号,可以用一个栈存遍历后遇到的数字(乘除进行计算) ,最后将栈进行求和得到最终结果。

遇到符号,将当前符号之前的数字和之前的符号压入栈内。遇到乘除,将结果进行计算。最后更新记录当前符号。

class Solution(object):def calculate(self, s):n = len(s)stack = []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 '+-*/':#根据前一个符号,对+-num进行压入栈if preSign == '+':stack.append(num)elif preSign == '-':stack.append(-num)elif preSign == '*':stack.append(stack.pop() * num)else:#python2中-3/2=-2, 3/2=1 所以这里转float再取整stack.append(int(float(stack.pop()) /float(num)))preSign = s[i] #更新符号num = 0return sum(stack)

【227】基本计算器II--无括号的加减乘除计算器相关推荐

  1. 基于STM 32、矩阵键盘和独立键盘实现LCD显示的智能计算器(带括号的加减乘除运算、混合四则运算)——普中科技单片机开发试验仪嵌入式开发

    0 引言 智能计算器是嵌入式开发的入门项目,本章使用STM 32芯片作为CPU,并将矩阵键盘和独立键盘作为输入外设,LCD1602作为显示屏,实现可输入的可视化智能计算器. 备注:最终生成的可执行HE ...

  2. 用python编写加减乘除计算器,新手用python写加减乘除计算器

    import time while 1: print '---------------科学计算器------------' a=float(input('请输入第一个数字:')) c=raw_inpu ...

  3. 227. 基本计算器 II

    227. 基本计算器 II Ideas 对于表达式计算的问题,一般第一个想到的就是stack,每次从表达式中拿一个值放到stack中,如果是乘除,因为优先级比较高,所以先计算,然后把计算结果appen ...

  4. 安卓(Android studio)编写一个计算器,可以连续加减乘除,可加小数点,不包含括号以及加减乘除优先算法。

    安卓(Android studio)编写一个计算器,可以累加,可加小数点,不包含括号以及加减乘除优先算法. 首先需要在res目录下的layout文件下创建一个xml文件进行界面的布局设计,接着在Jav ...

  5. 693. 交替位二进制数 / 227. 基本计算器 II / 264. 丑数 II

    693. 交替位二进制数[简单题][每日一题] 思路:[位运算] 排除特殊情况n=1,此时return true. 将n转为二进制字符串,依次将相邻两位数字进行异或运算. 异或运算的结果为flag,如 ...

  6. c 语言开发一个四则运算器,C++实现四则运算器(无括号)

    本文实例为大家分享了C++实现无括号的四则运算器的具体代码,供大家参考,具体内容如下 完成度更高的带括号版本可以看C++实现四则运算器(带括号) 对于无括号的计算器,实现起来比较容易,下面让我们一步步 ...

  7. 在线分数加减乘除计算器

    在线分数加减乘除计算器 在线分数加减乘除计算器 分数计算器是一款在线计算分数与有理数之间的计算器,它可以计算分数加法.分数减法.分数乘法.分数除法等运算. https://tooltt.com/fra ...

  8. php加减法计算器程序,用php简单实现加减乘除计算器

    用php实现加减乘除计算器.代码很简单哦! 复制代码 代码如下: header("content-type:text/html;charset=utf-8"); session_s ...

  9. 用php实现加减乘除计算器,利用php怎么编写一个加减乘除计算器

    利用php怎么编写一个加减乘除计算器 发布时间:2021-01-16 11:22:55 来源:亿速云 阅读:99 作者:Leah 利用php怎么编写一个加减乘除计算器?很多新手对此不是很清楚,为了帮助 ...

最新文章

  1. node mysql await_node.js中对 mysql 进行增删改查等操作和async,await处理
  2. QIIME 2用户文档. 14机器学习预测样品元数据分类和回归q2-sample-classifier(2018.11)
  3. linux下创建mysql用户,并且给增删改查的权限
  4. 学python心得体会1000字-Python学习心得体会总结,不要采坑
  5. Open Street Map维基世界地图初探--概念、开发
  6. cakephp对数据库的增删改查
  7. 【推荐】由浅入深学FI—获利能力分析
  8. 跟牛牛老师学python自动化的第四天
  9. word List 14
  10. 罗永浩今年有点难,“老人与海”发布会新品到底是啥?
  11. MySQL Explain命令详解--表的读取顺序,数据读取操作的类型等
  12. Docker 大势已去,Podman 即将崛起!
  13. 利用paramiko模块实现堡垒机+审计功能
  14. linux控制pwm输出个数,使用PWM控制来实现电压的变化控制
  15. java大数据和python大数据的全面对比,哪个更主流?
  16. TeamViewer三种许可证的区别是什么?
  17. c语言中什么是映像文件,一键备份C盘的映像文件:\~1\C_PAN.GHO
  18. thonny python介绍_面向初学者的 Python IDE:Thonny
  19. 修改手机状态栏字体的颜色(如:白底黑字)
  20. 一张图带你看完图论第一章(包含定义、定理、公式、推导证明和例题)

热门文章

  1. 刘桉齐:敏捷回顾会七步成诗法 | 真北群友作品
  2. GitHub搭建的个人博客发表文章
  3. 中科院90多科研人员集体辞职后续:已低调处理,被质疑所长新添重要职务
  4. java安全学习(一)
  5. Jlink命令行烧录
  6. Linux中yum yum yum
  7. cpufreq: cpufreq_online: Failed to initialize policy for cpu: 0 (-19)
  8. 关于二叉树重构的思索
  9. 某电商网站的数据库设计(2)——商品销售相关数据表的设计
  10. [BZOJ]4491: 我也不知道题目名字是什么 线段树(差分)