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

天津泰达建设集团有限公司网站电子制作diy

天津泰达建设集团有限公司网站,电子制作diy,用word 做网站,自己电脑做网站服务器代码随想录二刷 | 栈与队列 |逆波兰表达式求值 题目描述解题思路 & 代码实现 题目描述 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 + * 也可以依据次序计算出正确结果。
  • 适合用栈操作运算:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中

解题思路 & 代码实现

本题中每一个子表达式要得出一个结果,然后拿这个结果再进行运算,那么这就是一个相邻字符串消除的过程。这样就与这和1047. 删除字符串中的所有相邻重复项 (opens new window)差不多,只是将消除相邻元素换成了运算。

class Solution {
public:int evalRPN(vector<string>& tokens) {stack<long long> st;for (int i = 0; i < tokens.size(); i++) {if (tokens[i] == '+' || tokens[i] == '-' || tokens[i] == '*' || tokens[i] == '/') {long long num1 = st.top();st.pop();long long num2 = st.top();st.pop();if (tokens[i] == '+') st.push(num2 + num1);if (tokens[i] == '-') st.push(num2 - num1);if (tokens[i] == '*') st.push(num2 * num1);if (tokens[i] == '/') st.push(num2 / num1);} else {st.push(stoll(tokens[i]));}}int result = st.top();st.pop();return result;}
};

文章转载自:

http://1jnhREMK.rqxhp.cn
http://3oHLyfjE.rqxhp.cn
http://XgeM9wdr.rqxhp.cn
http://trO0PGsV.rqxhp.cn
http://fLXcJ7vG.rqxhp.cn
http://mZ1a5YQQ.rqxhp.cn
http://q8ZDGinw.rqxhp.cn
http://tHActmLH.rqxhp.cn
http://jMZdPv1E.rqxhp.cn
http://O1rk0WcD.rqxhp.cn
http://sUPfNaG7.rqxhp.cn
http://hev2nzeN.rqxhp.cn
http://D1DXKE6x.rqxhp.cn
http://3ocY1J93.rqxhp.cn
http://uikRVATd.rqxhp.cn
http://aSC8ZwR3.rqxhp.cn
http://Z7KINnC3.rqxhp.cn
http://fzbbGV77.rqxhp.cn
http://3gegZYrw.rqxhp.cn
http://uQmenmeD.rqxhp.cn
http://zYAfl21H.rqxhp.cn
http://ymaMjpzR.rqxhp.cn
http://tfkgWVL2.rqxhp.cn
http://K6smbNkJ.rqxhp.cn
http://HxNL6ghc.rqxhp.cn
http://DDCkc46f.rqxhp.cn
http://5Z0mUKgn.rqxhp.cn
http://2BGSm8eN.rqxhp.cn
http://BBI3ANI3.rqxhp.cn
http://jNvz3OI6.rqxhp.cn
http://www.dtcms.com/wzjs/650973.html

相关文章:

  • 微网站建设市场国内永久免费crm游戏
  • 台州seo网站排名wordpress 技术类模板下载
  • asp做招聘网站流程天津飞机模型制作公司
  • dedecms网站地图插件安全的企业网站开发
  • 番禺电商网站建设seo学院培训班
  • 网站推广的具体方法软件下载
  • 门户网站系统开发如何推广平台
  • 常州网站建设多少钱一般的学校网站怎么做
  • 设计师网站接单网站制作简单协议
  • 网站管理员可控的关键节点微信小程序网站建设哪家好
  • 银行门户网站建设艺术品交易网站开发
  • 网站图片大小优化网站语言版本
  • 网站自然排名往后掉推荐个临汾做网站的
  • 成品网站免费下载飓风seo刷排名软件
  • 郑州旅游网站搭建wordpress post date
  • 宁波网站优化方案品牌网站建设相关问题
  • 网站建设与网页设计开题报告如何将网站提交到搜索引擎
  • 扬中网站推广托管wordpress 安装路径
  • 南坪做网站搜狗seo刷排名软件
  • 零食店网站构建策划报告免费发布信息平台有哪些
  • 安徽外贸网站建设推广普通话手抄报内容文字
  • 企业网站的步骤一个wordpress的爱好者
  • html5制作网站谁的好美工培训班一般培训多久
  • ppt免费模板下载网站有哪些政务网站建设信息
  • 文化网站建设wordpress主题代码编辑教程
  • 烟台网站设计单位网站做搜索关键字好吗
  • 网站设计制作中心做网站用什么源码最好
  • 门户网站建设服务医院风格 wordpress
  • 自动做网站的ai三峡建设管理有限公司网站
  • 网站开发完要怎么部署成都网站推广如何