Evaluate Reverse Polish Notation
来源:互联网 发布:人工智能技术失控 编辑:程序博客网 时间:2024/06/06 20:24
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
class Solution {public: int evalRPN(vector<string> &tokens) { stack<int> s_opd; int lopt = 0; int ropt = 0; for(int i = 0; i < tokens.size(); i++) { if(tokens[i] == "+"){ // pick out the first number lopt = s_opd.top(); s_opd.pop(); // pick out the second number ropt = s_opd.top(); s_opd.pop(); // push the result s_opd.push(ropt + lopt); } else if (tokens[i] == "-") { lopt = s_opd.top(); s_opd.pop(); ropt = s_opd.top(); s_opd.pop(); s_opd.push(ropt - lopt); }else if(tokens[i] == "*") { lopt = s_opd.top(); s_opd.pop(); ropt = s_opd.top(); s_opd.pop(); s_opd.push(ropt * lopt); }else if(tokens[i] == "/") { lopt = s_opd.top(); s_opd.pop(); ropt = s_opd.top(); s_opd.pop(); if(lopt == 0) { s_opd.push(0); } else { s_opd.push(ropt / lopt); } } else { s_opd.push( atoi(tokens[i].c_str()) ); } } return s_opd.top(); }};
注意:
1. STL stack 的pop不会返回数值,只会消除一个数据。
2.运算符 / 要考虑分母为0的情况。
0 0
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Haar特征与积分图
- 简单到死的计算器C编程
- hdu 5202 Rikka with string
- 目标检测的图像特征提取之HOG特征
- MySQL语句
- Evaluate Reverse Polish Notation
- 一片海洋中的陆地
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结2——级联分类器与检测过程
- Color the fence
- 录制音乐MediaRecorder
- 系统加密
- ARCENGINE开发经典贴
- Python3学习笔记之基础教程
- matplotlib 和 numpy下载与安装(基于Python2.7.9)