题目描述

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

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

Some examples:

["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

思路:题目意思是给定一个逆波兰表达式,求该表达式的值。

利用栈来模拟计算:遇到操作数直接压栈,碰到操作符取栈顶的2个元素进行计算(第一次取出来的是右操作数),然后再把计算结果压栈,依次循环下去,直到栈中剩下一个元素,就是整个表达式的值。

class Solution {
public:int evalRPN(vector<string> &tokens) {int len = tokens.size();if(len == 0)return 0;if(len == 1)return stoi(tokens[0].c_str());stack<int> stack;for(int i = 0; i < len; ++i){if(tokens[i] != "+" && tokens[i] != "-" && tokens[i] != "*" && tokens[i] != "/")stack.push(stoi(tokens[i].c_str()));else{int tmp = stack.top();stack.pop();if(tokens[i] == "+")tmp += stack.top();if(tokens[i] == "-")tmp = stack.top() - tmp;if(tokens[i] == "*")tmp *= stack.top();if(tokens[i] == "/"){if(tmp == 0)return 0;tmp = stack.top()/tmp;}stack.pop();stack.push(tmp);}}if(stack.size() == 1)return stack.top();elsereturn 0;}
};
stoi(tokens[i].c_str())
/*这里要使用c_str(),因为stoi的参数是const char*,所以在用string时,必须先用c_str()将string转化为char* */

2. evaluate-reverse-polish-notation相关推荐

  1. leetcode day1 -- Reverse Words in a String Evaluate Reverse Polish Notation Max Points on a Li

    以前从来没做过什么oj,发现做oj和在本地写代码或者纸上写差别还是很大的,觉得今天开始刷oj,特此记录一下. 1.Reverse Words in a String Given an input st ...

  2. LeetCode 150. Evaluate Reverse Polish Notation

    LeetCode 150. Evaluate Reverse Polish Notation Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/42 ...

  3. leetcode - 150. Evaluate Reverse Polish Notation

    前言:记录一下leetcode上的一道题目: 题目网址:https://leetcode.com/problems/evaluate-reverse-polish-notation/descripti ...

  4. 计算后续表达式 LectCode之Evaluate Reverse Polish Notation

    在记录lectcode这道题目前先说明一下三个相关知识点:前序表达式,中序表达式,后序表达式 前序表达式(Polish Notation 或 Prefix Notation): 前序表达式就是不含括号 ...

  5. Leetcode 之Evaluate Reverse Polish Notation(41)

    很简单的一道题,定义一个栈保留操作数,遇操作符则弹出运算即可. bool isOperator(string &op){//注意用法return op.size() == 1 &&am ...

  6. LeetCode-150-Evaluate Reverse Polish Notation

    算法描述: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are ...

  7. Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)

    Algorithm:C++语言实现之链表相关算法(单链公共结点问题.一般LCA.括号匹配.最长括号匹配.逆波兰表达式Reverse Polish Notation.直方图矩形面积.收集雨水问题) 目录 ...

  8. Reverse Polish Notation

    http://www.1point3acres.com/bbs/thread-31595-1-1.html 定义一种叫做"Reverse Polish Notation"的表达式: ...

  9. [LeetCode]题解(python):150-Evaluate Reverse Polish Notation

    题目来源: https://leetcode.com/problems/evaluate-reverse-polish-notation/ 题意分析: 给定一个数组,用这个数组来表示加减乘除,例如 [ ...

  10. leetcoder reverse polish notation解题笔记

    题目在这里 http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ 逆波兰表达式的求值,最简单直接的方法, 没有坑 1. 简 ...

最新文章

  1. 变换判断滤波器类型_7.4 低通IIR滤波器的频率变换
  2. 北京君正集成电路的Newton平台--穿戴式
  3. PLSQL的截取函数
  4. web服务器的性能体现,Web应用服务器的性能问题分析
  5. oracle多条件分组统计_多条件统计,就必须用Ifs系列函数,绝对的高能!
  6. 前端学习(972):swiper插件使用 参数更改
  7. c语言字体属性,【C】 5_变量属性
  8. [PyTorch] 基于python和pytorch的多项式回归
  9. What is the Actual Performance of HANA?
  10. aspf ftp_【解析】文件传输协议:FTP、TFTP、SFTP有什么区别?
  11. 全球十九大主流卫星遥感数据下载平台
  12. Google 推出的编程学习应用 Grasshopper
  13. 跟着小甲鱼学习C语言
  14. 【原创】/Restarting/ Splay树 (普通平衡树 文艺平衡树 bzoj1895 poj 2580 SuperMemo 题解)
  15. 浅墨博客《游戏编程模式》
  16. 小菜鸟之HTML第二课
  17. xgboost算法_XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制...
  18. mac php开发套件_Mac 下搭建 PHP 开发环境的步骤
  19. MapGuide HTTP API
  20. html制作统计期末成绩,利用Excel制作学生成绩表

热门文章

  1. 金蝶专业版服务器提示系统错误,金蝶专业版连接云服务器异常
  2. php readystate,ajax+php打造进度条 readyState各状态
  3. 实现直播带货系统推流,你进行推流监控了吗?
  4. cordova通过指纹插件进行指纹验证
  5. Windows socket之IOCP实例----IOCP开发驾照理论考试系统
  6. 线程池ThreadPoolExecutor与ForkJoinPool
  7. excel多个表格数据汇总怎么做?
  8. 游戏数据库服务器 数据缓存 增量更新
  9. 各种IT学习视频和资料
  10. HTML和CSS的知识点