2. evaluate-reverse-polish-notation
题目描述
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相关推荐
- 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 ...
- LeetCode 150. Evaluate Reverse Polish Notation
LeetCode 150. Evaluate Reverse Polish Notation Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/42 ...
- leetcode - 150. Evaluate Reverse Polish Notation
前言:记录一下leetcode上的一道题目: 题目网址:https://leetcode.com/problems/evaluate-reverse-polish-notation/descripti ...
- 计算后续表达式 LectCode之Evaluate Reverse Polish Notation
在记录lectcode这道题目前先说明一下三个相关知识点:前序表达式,中序表达式,后序表达式 前序表达式(Polish Notation 或 Prefix Notation): 前序表达式就是不含括号 ...
- Leetcode 之Evaluate Reverse Polish Notation(41)
很简单的一道题,定义一个栈保留操作数,遇操作符则弹出运算即可. bool isOperator(string &op){//注意用法return op.size() == 1 &&am ...
- LeetCode-150-Evaluate Reverse Polish Notation
算法描述: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are ...
- Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)
Algorithm:C++语言实现之链表相关算法(单链公共结点问题.一般LCA.括号匹配.最长括号匹配.逆波兰表达式Reverse Polish Notation.直方图矩形面积.收集雨水问题) 目录 ...
- Reverse Polish Notation
http://www.1point3acres.com/bbs/thread-31595-1-1.html 定义一种叫做"Reverse Polish Notation"的表达式: ...
- [LeetCode]题解(python):150-Evaluate Reverse Polish Notation
题目来源: https://leetcode.com/problems/evaluate-reverse-polish-notation/ 题意分析: 给定一个数组,用这个数组来表示加减乘除,例如 [ ...
- leetcoder reverse polish notation解题笔记
题目在这里 http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ 逆波兰表达式的求值,最简单直接的方法, 没有坑 1. 简 ...
最新文章
- 变换判断滤波器类型_7.4 低通IIR滤波器的频率变换
- 北京君正集成电路的Newton平台--穿戴式
- PLSQL的截取函数
- web服务器的性能体现,Web应用服务器的性能问题分析
- oracle多条件分组统计_多条件统计,就必须用Ifs系列函数,绝对的高能!
- 前端学习(972):swiper插件使用 参数更改
- c语言字体属性,【C】 5_变量属性
- [PyTorch] 基于python和pytorch的多项式回归
- What is the Actual Performance of HANA?
- aspf ftp_【解析】文件传输协议:FTP、TFTP、SFTP有什么区别?
- 全球十九大主流卫星遥感数据下载平台
- Google 推出的编程学习应用 Grasshopper
- 跟着小甲鱼学习C语言
- 【原创】/Restarting/ Splay树 (普通平衡树 文艺平衡树 bzoj1895 poj 2580 SuperMemo 题解)
- 浅墨博客《游戏编程模式》
- 小菜鸟之HTML第二课
- xgboost算法_XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制...
- mac php开发套件_Mac 下搭建 PHP 开发环境的步骤
- MapGuide HTTP API
- html制作统计期末成绩,利用Excel制作学生成绩表