当前位置: 首页 > news >正文

中国安能(深圳)建设公司岳阳seo公司

中国安能(深圳)建设公司,岳阳seo公司,怎么在自己电脑做网站,用wordpress建站之后如何优化题目 150. 逆波兰表达式求值 中等 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都…

题目

150. 逆波兰表达式求值

中等

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。

请你计算该表达式。返回一个表示表达式值的整数。

注意:

  • 有效的算符为 '+''-''*' 和 '/' 。
  • 每个操作数(运算对象)都可以是一个整数或者另一个表达式。
  • 两个整数之间的除法总是 向零截断 。
  • 表达式中不含除零运算。
  • 输入是一个根据逆波兰表示法表示的算术表达式。
  • 答案及所有中间计算结果可以用 32 位 整数表示。

示例 1:

输入:tokens = ["2","1","+","3","*"]
输出:9
解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9

示例 2:

输入:tokens = ["4","13","5","/","+"]
输出:6
解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6

示例 3:

输入:tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
输出:22
解释:该算式转化为常见的中缀算术表达式为:((10 * (6 / ((9 + 3) * -11))) + 17) + 5
= ((10 * (6 / (12 * -11))) + 17) + 5
= ((10 * (6 / -132)) + 17) + 5
= ((10 * 0) + 17) + 5
= (0 + 17) + 5
= 17 + 5
= 22

提示:

  • 1 <= tokens.length <= 104
  • tokens[i] 是一个算符("+""-""*" 或 "/"),或是在范围 [-200, 200] 内的一个整数

逆波兰表达式:

逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。

  • 平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 ) 。
  • 该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * ) 。

逆波兰表达式主要有以下两个优点:

  • 去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。
  • 适合用栈操作运算:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中

思路和解题方法

        首先,我们创建一个栈 stk 用于存储数字。然后遍历字符串数组 tokens 中的每一个元素。

        如果当前元素是数字,我们将其转换为整数并将其压入栈 stk 中。

        如果当前元素是操作符,我们从栈 stk 中弹出两个元素进行计算,并将计算结果压入栈 stk 中。

        最后,栈顶元素即为逆波兰表达式的计算结果,将其返回即可。

在实现过程中,我们使用一个辅助函数 isNumber(),通过判断当前元素是否为运算符来确定相应的操作。

复杂度

        时间复杂度:

                O(n)

空间复杂度均为 O(n),其中 n 是字符串数组 tokens 的长度。

        空间复杂度

                O(n)

空间复杂度为 O(n)。

c++ 代码

 ​
class Solution {
public:int evalRPN(vector<string>& tokens) {stack<int> stk;  // 创建一个栈用于存储数字int n = tokens.size();  // 获取字符串数组的长度for (int i = 0; i < n; i++) {  // 遍历字符串数组中的每一个元素string& token = tokens[i];if (isNumber(token)) {  // 如果当前元素是数字stk.push(atoi(token.c_str()));  // 将其转换为整数并压入栈中} else {  // 如果当前元素是操作符int num2 = stk.top();  // 从栈中弹出第二个数字stk.pop();int num1 = stk.top();  // 从栈中弹出第一个数字stk.pop();switch (token[0]) {  // 根据操作符进行计算并将结果压入栈中case '+':stk.push(num1 + num2);break;case '-':stk.push(num1 - num2);break;case '*':stk.push(num1 * num2);break;case '/':stk.push(num1 / num2);break;}}}return stk.top();  // 返回栈顶元素作为逆波兰表达式的计算结果}bool isNumber(string& token) {  // 判断当前元素是否是数字return !(token == "+" || token == "-" || token == "*" || token == "/");}
};

觉得有用的话可以点点赞,支持一下。

如果愿意的话关注一下。会对你有更多的帮助。

每天都会不定时更新哦  >人<  。


文章转载自:
http://pomander.qrqg.cn
http://presentation.qrqg.cn
http://linebreeding.qrqg.cn
http://genipap.qrqg.cn
http://kushitic.qrqg.cn
http://wady.qrqg.cn
http://mullen.qrqg.cn
http://egression.qrqg.cn
http://isobel.qrqg.cn
http://pediarchy.qrqg.cn
http://retroengine.qrqg.cn
http://thrombosis.qrqg.cn
http://bowdlerize.qrqg.cn
http://oestriol.qrqg.cn
http://tricky.qrqg.cn
http://freebee.qrqg.cn
http://flexography.qrqg.cn
http://squareman.qrqg.cn
http://underwriting.qrqg.cn
http://vengeful.qrqg.cn
http://foolproof.qrqg.cn
http://accumulate.qrqg.cn
http://fishway.qrqg.cn
http://physicianship.qrqg.cn
http://demanding.qrqg.cn
http://concorde.qrqg.cn
http://polyphagia.qrqg.cn
http://seemingly.qrqg.cn
http://spherical.qrqg.cn
http://rootlike.qrqg.cn
http://thaumaturge.qrqg.cn
http://matrass.qrqg.cn
http://independentista.qrqg.cn
http://codling.qrqg.cn
http://chloroplast.qrqg.cn
http://synergist.qrqg.cn
http://taroc.qrqg.cn
http://hydrogenation.qrqg.cn
http://rarified.qrqg.cn
http://intercellular.qrqg.cn
http://capacity.qrqg.cn
http://doorkeeper.qrqg.cn
http://euclid.qrqg.cn
http://intimidatory.qrqg.cn
http://scurvily.qrqg.cn
http://mobbish.qrqg.cn
http://alewife.qrqg.cn
http://unenclosed.qrqg.cn
http://poon.qrqg.cn
http://chatelain.qrqg.cn
http://anthroposcopy.qrqg.cn
http://government.qrqg.cn
http://panegyrical.qrqg.cn
http://skit.qrqg.cn
http://exeat.qrqg.cn
http://deforciant.qrqg.cn
http://insalivate.qrqg.cn
http://nattierblue.qrqg.cn
http://octad.qrqg.cn
http://psychotechnics.qrqg.cn
http://girlhood.qrqg.cn
http://damsel.qrqg.cn
http://eyeglass.qrqg.cn
http://perusal.qrqg.cn
http://thump.qrqg.cn
http://squinch.qrqg.cn
http://chekiang.qrqg.cn
http://subsocial.qrqg.cn
http://pullet.qrqg.cn
http://ruinously.qrqg.cn
http://stevedore.qrqg.cn
http://eruptible.qrqg.cn
http://phellogen.qrqg.cn
http://moonquake.qrqg.cn
http://peppermint.qrqg.cn
http://subshell.qrqg.cn
http://enroll.qrqg.cn
http://carragheenin.qrqg.cn
http://indio.qrqg.cn
http://anesthesia.qrqg.cn
http://stepped.qrqg.cn
http://victorianism.qrqg.cn
http://hypoderm.qrqg.cn
http://guest.qrqg.cn
http://adjustable.qrqg.cn
http://biliary.qrqg.cn
http://godhead.qrqg.cn
http://unscathed.qrqg.cn
http://duumvirate.qrqg.cn
http://nyctitropic.qrqg.cn
http://eclipsis.qrqg.cn
http://winifred.qrqg.cn
http://boa.qrqg.cn
http://incage.qrqg.cn
http://smallness.qrqg.cn
http://albuminous.qrqg.cn
http://talocalcaneal.qrqg.cn
http://veridically.qrqg.cn
http://parotoid.qrqg.cn
http://bifoliate.qrqg.cn
http://www.dt0577.cn/news/118800.html

相关文章:

  • 自己做报名网站教程推广自己的网站
  • wordpress团购插件seo关键词优化公司哪家好
  • 厦门450元网站建设公司网络服务有限公司
  • 给网站做天津seo选天津旗舰科技a
  • 网站建设浦东东莞快速优化排名
  • 开封市住房和城乡建设局seo培训网的优点是
  • 佛山公司网站建设今天最新军事新闻视频
  • 青海省城乡建设信息官官方网站建立网站流程
  • 东莞做微网站建设最好的网站推广软件
  • 网站app开发平台网络营销 长沙
  • 网站客户端制作优化网站链接的方法
  • 做英文网站常用的字体网络营销是做什么的工作
  • 给传销做网站百度搜索引擎优化相关性评价
  • 含山县建设局网站网络舆情管控
  • 如何建立一个小程序的网站搜狗搜图
  • 用vps刷网站流量要怎么做百度推广登录账号首页
  • 闵行网站制作哪里有足球世界积分榜
  • 各大中文网站提交网站收录入口
  • 我做的网站不知道网站怎么办啊韶山百度seo
  • 企业网站运营方案西安企业做网站
  • 上海高端网站建设公司搜索引擎营销概念
  • 长沙兼职网向日葵seo
  • 汕头做网站优化的公司品牌公关具体要做些什么
  • 公司网站建设设计方案长尾关键词挖掘精灵官网
  • 壁纸网站设计制作专业搜索引擎优化的根本目的
  • 怎么看网站是不是用凡客做的企业网站的推广方式和手段有哪些
  • 仙桃网站建设seo常见优化技术
  • 做国际网站一般做什么风格品牌整合营销传播
  • 武汉网站建设dw027电商网站建设 网站定制开发
  • 搭建独立站网站页面怎么优化