[LeetCode]题解(python):150-Evaluate Reverse Polish Notation
2024-09-23 19:40:29
题目来源:
https://leetcode.com/problems/evaluate-reverse-polish-notation/
题意分析:
给定一个数组,用这个数组来表示加减乘除,例如
["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
题目思路:
这里考虑的是栈的使用。如果是数字那么push进栈,如果不是,那么把栈后两个数pop出来,进行相应的操作。要注意的是除法的时候要保证先转化正负一致再进行计算。
代码(python):
class Solution(object):
def evalRPN(self, tokens):
"""
:type tokens: List[str]
:rtype: int
"""
ans = []
for i in tokens:
if i != '/' and i != '*' and i != '+' and i != '-':
ans.append(int(i))
else:
tmp1 = ans.pop()
tmp2 = ans.pop()
if i == '/':
if tmp1*tmp2 < 0:
ans.append(-((-tmp2) // tmp1))
else:
ans.append(tmp2/tmp1)
if i == '*':
ans.append(tmp2*tmp1)
if i == '+':
ans.append(tmp2 + tmp1)
if i == '-':
ans.append(tmp2 - tmp1)
return ans[0]
最新文章
- [Machine Learning &; Algorithm] 随机森林(Random Forest)
- GDB详解
- Atitit 控制中心快速启动面板quick launcher
- [tem]高精度2
- Linux modules install
- UBUNTU下Y86模拟器的安装和使用
- 【C#】OOP之多态那点事
- oracle 导入数据时提示只有 DBA 才能导入由其他 DBA 导出的文件
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
- Andrew Ng机器学习课程笔记--week7(SVM)
- PHP 接口 返回构造函数
- Linux中安装字体
- Testlink插件工具
- Python04(基础语法)
- sort 与 sorted 区别
- python—第三库的安装方法
- js中一次性注册多个事件
- Linux touch命令
- Python自定义包在linux服务器导入错误的解决办法
- (java基础)抽象类加泛型的理解
热门文章
- Android之Socket通信(一)
- HTML——window.document对象练习题
- Android 相对布局常用属性
- Oracle EBS-SQL (PO-10):检查过期采购未接收订单.sql
- 可以使用QT给龙芯开发软件
- Windows下让Git记住用户名密码(https)
- git使用三把斧
- AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)
- 探求C#.Net中ArrayList与Array的区别 【转】
- How to set custom JsonSerializerSettings for Json.NET in MVC 4 Web API?