博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode2_Evaluate Reverse Polish Notation评估逆波兰表达式(栈)
阅读量:5749 次
发布时间:2019-06-18

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

题目:

Evaluate the value of an arithmetic expression in .

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

 

理解这道题首先要理解什么是波兰表达式、什么是逆波兰表达式,这个表达式的意义何在:看参考链接

 

参考链接:

 

Evaluate Reverse Polish Notation: 

波兰式、逆波兰式与表达式求值:

 

 

思路:遍历这个逆波兰表达式数组,遇到操作数推进操作数的栈s,遇到操作符,将栈s顶两个操作数a和b取出进行操作符运算,将运算结果c放进栈中。

1 class Solution { 2 public: 3     int evalRPN(vector
&s) { 4 stack
store; 5 for(auto x: s) 6 { 7 if(x=="+"||x=="-"||x=="*"||x=="/") 8 { 9 if(store.size()<2) return 0;10 int a=store.top();store.pop();11 int b=store.top();store.pop();12 int c=0;13 if(x=="+")14 c=a+b;15 else if(x=="-")16 c=b-a;17 else if(x=="*")18 c=b*a;19 else if(x=="/")20 c=b/a;21 store.push(c);22 }23 else24 {25 store.push(atoi(x.c_str()));26 }27 28 29 }30 return store.top();31 }32 };

 

转载于:https://www.cnblogs.com/grooovvve/p/10825874.html

你可能感兴趣的文章
mac安装kubernetes并运行echoserver
查看>>
多页架构的前后端分离方案(webpack+express)
查看>>
算法(第4版) Chapter 1
查看>>
前端技术选型的遗憾和经验教训
查看>>
“亲切照料”下的领域驱动设计
查看>>
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
Ossim下的安全合规管理
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
spring.net 继承
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
Linux下的C编程实战
查看>>
[32期] html中部分代码与英语单词关系
查看>>