leetcode227 Basic Calculator II
时间:2020-03-06
本文章向大家介绍leetcode227 Basic Calculator II,主要包括leetcode227 Basic Calculator II使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 """ 2 Implement a basic calculator to evaluate a simple expression string. 3 The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer division should truncate toward zero. 4 Example 1: 5 Input: "3+2*2" 6 Output: 7 7 Example 2: 8 Input: " 3/2 " 9 Output: 1 10 Example 3: 11 Input: " 3+5 / 2 " 12 Output: 5 13 """ 14 """ 15 这道题因为有空格字符,连续数字字符使得考虑情况有些复杂 16 为了保存好符号,用了一个sign变量,初始化为'+',保证其正常入栈 17 """ 18 class Solution: 19 def calculate(self, s: str) -> int: 20 if not s: 21 return '0' 22 stack = [] 23 sign = '+' # !!!用一个sign实现将符号后置使用 24 num = 0 25 for i in range(len(s)): 26 if s[i].isdigit(): 27 num = num * 10 + int(s[i]) # ord(s[i]) - ord('0') 28 if not s[i].isdigit() and s[i] != ' ' or i == len(s) - 1: 29 if sign == '-': # 注意这里是sign 30 stack.append(-num) 31 elif sign == '+': 32 stack.append(num) 33 elif sign == '*': 34 stack.append(stack.pop() * num) 35 else: # 因为python里向下取整,-1.5取整为-2 36 temp = stack.pop() 37 if temp // num < 0 and temp % num != 0: 38 stack.append(temp // num + 1) 39 else: 40 stack.append(temp // num) 41 sign = s[i] 42 num = 0 43 res = 0 44 for j in range(len(stack)): 45 res += stack[j] 46 return res 47 if __name__ == '__main__': 48 ans = Solution() 49 s = "14-3/2" 50 ans.calculate(s)
原文地址:https://www.cnblogs.com/yawenw/p/12427632.html
- 深度学习入门实战
- 如何使用Zookeeper实现HiveServer2的HA
- Python 统计个人加密货币资产
- 如何使用HAProxy实现HiveServer2负载均衡
- 机器学习之决策树算法
- 如何使用HAProxy实现Impala的负载均衡
- 解读GEO数据存放规律及下载,一文就够
- 从GEO数据库下载得到表达矩阵 一文就够
- 机器学习各类算法比较
- Kerberos环境下删除ZooKeeper服务注册信息问题分析
- 根据分组信息做差异分析- 这个一文不够的
- 如何使用Cloudera Manager启用YARN的HA
- 如何使用java代码通过JDBC连接Hive(附github源码)
- 差异分析得到的结果注释一文就够
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python删除列表元素
- PHP中file_get_contents的使用方法
- PHP中的 fastcgi_finish_request();
- PHP超实用的函数总结整理
- R语言使用Rasch模型分析学生答题能力
- PHP中的const
- Python贝叶斯回归分析住房负担能力数据集
- PHP异常处理
- np.argsort函数
- PHP中this,self,parent的区别
- R语言基于协方差的SEM结构方程模型中的拟合指数
- Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
- R语言在不同样本量下的Littles MCAR检验
- PHP10段常用功能代码
- MySQL中group_concat()函数用法总结