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

西安网站建设 翼驰今日新闻网

西安网站建设 翼驰,今日新闻网,最近的国际新闻大事件,网站正能量大全代码随想录二刷 | 栈与队列 |逆波兰表达式求值 题目描述解题思路 & 代码实现 题目描述 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://www.dtcms.com/wzjs/83553.html

相关文章:

  • 武汉营销网站建设公司一级造价工程师
  • 清远做网站企业网站怎么建立
  • 天津住房和城乡建设委员会网站电商平台有哪些?
  • 网站服务器到期了怎么续费关键词歌曲免费听
  • 阿里云如何做网站泉州关键词快速排名
  • 帝国cms做的网站以下哪个单词表示搜索引擎优化
  • 天猫店的网站怎么做的百度主页
  • 怎么才能成功做网站百度收录提交入口
  • 杭州网站建设外包公司怎样建立一个自己的网站
  • 企业商城网站建设开发百度实时热搜榜
  • 苏州城乡建设局网站郑志平爱站网创始人
  • wordpress 更新文章太原seo推广
  • 注册公司的七个步骤优化关键词可以选择哪个工具
  • 网站建设公司网址推广网站
  • 罗浮视窗网站建设吸引人气的营销方案
  • 国外平面设计师常看的网站深圳市seo网络推广哪家好
  • b s架构做网站好处十大搜索引擎排名
  • 正规制作网站公司哪家好百度一下就会知道了
  • 免费建站网站一级123456达内教育
  • k网站建设搜索引擎优化seo多少钱
  • 快速seo整站优化排行静态网站模板
  • 让别人做网站需要注意什么湘潭网站设计
  • 合肥网站建设的价格google在线代理
  • 深圳市建设银行网站首页爬虫搜索引擎
  • flash网站价格网站性能优化的方法有哪些
  • 建设企业营销型网站微信最好用的营销软件
  • 长沙网站开发微联讯点靠谱百度官方
  • 网站空间怎么选择深圳网络推广服务是什么
  • 哪个网站做首饰批发好百度公司网站推广怎么做
  • 萧山做网站的公司开封网站推广公司