Lintcode424 Evaluate Reverse Polish Notation solution 题解

【题目描述】

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +, -, *, /. Each operand may be an integer or another expression.

求逆波兰表达式的值。

在逆波兰表达法中,其有效的运算符号包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。

【题目链接】

www.lintcode.com/en/problem/evaluate-reverse-polish-notation/

【题目解析】

看到这种题目时,可以马上联想到stack或是queue之类的数据结构,因为可以依序地把数字储存下来,又可以正向或反向地把数字取出来。

除此之外,一开始还要为输入字串做检查,检查是不是合格可运算的.例如,如果输入字串都是运算符号而没有数字,那这是不能算的,需要回传错误.或者是输入字串只有数字而没有运算符号,这也是不能计算的.另外,输入字串的第一个和第二个元素一定不会是运算符号,一定会是数字.所以这几个条件就当做是程序里的throw exception的条件.

接着,只需要一个for loop,把符合所有条件的数字用stack记录下来,然后遇到运算符号时,把从stack把之前的数字拿出来运算,算完后再写回去stack.所以,用这样的逻辑就可以把这题的答案写出来了.

【参考答案】

www.jiuzhang.com/solutions/evaluate-reverse-polish-notation/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,350评论 0 33
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,120评论 2 36
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,689评论 0 13
  • 计算机英语(编程词汇大全) application 应用程式 应用、应用程序 application framew...
    朱森阅读 3,800评论 0 1
  • nodejs的json to csv 转换[https://charter652.xyz/post/nodejs-...
    洵_BlackBYR阅读 9,444评论 0 1