博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]题解(python):150-Evaluate Reverse Polish Notation
阅读量:6503 次
发布时间:2019-06-24

本文共 1125 字,大约阅读时间需要 3 分钟。

题目来源:

  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]
View Code

 

转载于:https://www.cnblogs.com/chruny/p/5478203.html

你可能感兴趣的文章
php 引入其他文件中的变量
查看>>
MYSQL体系结构-来自期刊
查看>>
mysql的基本知识
查看>>
exchange 2003配置ASSP 反垃圾邮件
查看>>
webpack入门(二)what is webpack
查看>>
UnitOfWork以及其在ABP中的应用
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>
for语句内嵌例题与个人理解
查看>>
眠眠interview Question
查看>>
[转]CSS hack大全&详解
查看>>
RPC-client异步收发核心细节?
查看>>
#define WIN32_LEAN_AND_MEAN 的作用
查看>>
仿余额宝数字跳动效果 TextCounter
查看>>
(10)Spring Boot修改端口号【从零开始学Spring Boot】
查看>>
Ubuntu16.04安装qt
查看>>
顶部滑动下拉广告
查看>>
简化代码的微小修改
查看>>
python之CSV文件格式
查看>>
你必须知道的.net学习总结
查看>>
leetcode之Reorder List
查看>>