NC212914 牛牛与后缀表达式
题目: NC212914 牛牛与后缀表达式 ,哈哈,我们今天来看一道简单的数据结构题嘛,这是选自牛客上的一道题,好了,我们一起来看看题意吧:
考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面!
题目传送门: NC212914 牛牛与后缀表达式
思路
:
这道题没什么好说的,根据题意做就是,采用栈这种数据结构比较好做,当然,也可以用数组,还有其他方法!
我们来看看成功AC的代码吧:
#define ll long long
ll calc(string x){ll num=0;for(int i=0;i<x.size();i++) num=num*10+(x[i]-'0');return num;
}
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 给定一个后缀表达式,返回它的结果* @param str string字符串 * @return long长整型*/long long legalExp(string str) {// write code herestack<ll> st;string s = str;string s2="";for(int i=0;i<s.size();i++){if(s[i]!='#'&&s[i]!='+'&&s[i]!='-'&&s[i]!='*'){s2+=s[i];}if(s[i]=='#'&&s[i]!='+'&&s[i]!='-'&&s[i]!='*') { ll t = calc(s2) ; st.push(t); s2=""; }if(s[i]=='+') {ll x2=st.top(); st.pop(); ll x1=st.top(); st.pop();st.push(x2+x1);}if(s[i]=='-') {ll x2=st.top(); st.pop(); ll x1=st.top(); st.pop();st.push(x1-x2);}if(s[i]=='*') {ll x2=st.top(); st.pop(); ll x1=st.top(); st.pop();st.push(x2*x1);}}return st.top();}
};
谢谢你的阅读
,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!
NC212914 牛牛与后缀表达式相关推荐
- java中缀表达式转后缀表达式(逆波兰算法)
四则运算是栈的重要应用之一 中缀表达式转后缀表达式(逆波兰算法)过程 从左到右遍历中缀表达式 数字直接输出为后缀表达式一部分 如果是符号,则判断与栈顶元素的优先级 高于栈顶元素优先级直接入栈 低于或等 ...
- java中缀表达式转后缀表达式_数据结构Java实现06----中缀表达式转换为后缀表达式...
本文主要内容: 表达式的三种形式 中缀表达式与后缀表达式转换算法 一.表达式的三种形式: 中缀表达式:运算符放在两个运算对象中间,如:(2+1)*3.我们从小做数学题时,一直使用的就是中缀表达式. 后 ...
- 【Java】LeetCode 150. 逆波兰表达式求值 (后缀表达式)
题目: 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话 ...
- P1449 后缀表达式
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...
- 数据结构实验——中缀表达式转为后缀表达式
一.实验内容: 编写程序,实现中缀表达式化为后缀式输出. 已知中缀表达式中操作数全部用小写英文字母表示,运算符只含有+, -, *, /四种,定界符只有( )以及结束符#. 二.程序源代码: 运行示例 ...
- 九、中缀表达式转为后缀表达式
使用栈将中缀表达式转为后缀表达式并计算 一.中缀表达式转换为后缀表达式 由于后缀表达式适合计算式进行计算,但是人对于较长的中缀表达式,很难将中缀表达式直接转换为后缀表达式,于是我们使用栈来实现中缀表达 ...
- c语言表达式的后缀,中缀表达式转换成后缀表达式C语言程序(一)
逆波兰表达式(Reverse Polish Notation)又叫后缀表达式.它是一种非常的表达式,可以将复杂的表达式转换成可以依靠简单的操作得到结果的表达.下面这段C语言即是用于实现将中缀表达式转换 ...
- 将中缀表达式转化为后缀表达式
我们把平时所用的标准四则运算表达式,即"9+(3-1)*3+10/2"叫做中缀表达式.因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化. 中缀表达式" ...
- c语言后缀表达式构造二叉树,C ++程序为后缀表达式构造表达式树
表达式树基本上是用于表示表达式的二叉树.在表达式树中,节点对应于运算符,每个叶节点对应于操作数.这是一个C ++程序,用于按顺序,前顺序和后顺序遍历为后缀表达式构造一个表达式树. 算法Begin Fu ...
最新文章
- Tempdb数据库详细介绍
- Matlab编程与数据类型 -- 多分支条件选择语句if/elseif/…/else/end
- Mocha BSM产品亮点——策略管理
- 未来智能社会的一砖一瓦都需要今天我们一点点的探索发现!
- python编程快速上手-----让繁琐工作自动化_每周一书《Python编程快速上手 让繁琐工作自动化》分享!...
- 数据丢包怎么修复_交换机发生网络通信故障怎么解决?
- java三目运算符判断boonlean,java三元运算符
- Codeforce 1255 Round #601 (Div. 2) A. Changing Volume (贪心)
- Python爬虫你需要积累这些基本知识_Python学习基础路线
- 晶振封装(绝对实用)
- Flask 框架学习1
- Fedora23安装有道词典
- 信息融合发展沿革与技术动态
- [ubuntn]常用软件安装方法
- 解决由于ntoskrnl.exe导致的蓝屏
- AI:2020年6月23日北京智源大会演讲分享之AI创业专题论坛——10:30-11:20陆奇教授《AI创业发展趋势:机会与挑战》
- 数字时代的中国支付体系现代化——DC/EP与数字人民币
- mp3播放器 遍历本地音乐显示在listview上,点击每一项item并传送音乐地址
- 关于充电桩绝缘检测中判断标准以及检测电压的选取
- ARM体系结构与编程_2015.08_P513_完整版PDF电子书下载 带索引书签目录高清版