【题解】洛谷 P1449 后缀表达式
题目
思路
栈。题目说的不是很清楚,没说包含什么操作。除法用整数除法就行。
先string读入字符串,然后从前往后看如果是个数字就入栈,如果是运算符就从栈里弹出两个数计算再入栈。
\(Code\)
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<stack>
#include<algorithm>
std::string sss;
std::stack<int> s1;
inline void read(int &T) {
int x=0;bool f=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
T=f?-x:x;
}
int main() {
std::cin>>sss;
int len=sss.length();
int sum=0;
for(int i=0;i<len-1;++i) {
if(sss[i]>='0'&&sss[i]<='9') {
sum=sum*10+sss[i]-'0';
}else {
if(sss[i]=='.') {
s1.push(sum);
sum=0;
}
else {
int x1=s1.top();
s1.pop();
int x2=s1.top();
s1.pop();
if(sss[i]=='+') s1.push(x1+x2);
if(sss[i]=='-') s1.push(x2-x1);
if(sss[i]=='*') s1.push(x2*x1);
if(sss[i]=='/') s1.push(x2/x1);
}
}
}
std::cout<<s1.top();
return 0;
}
【题解】洛谷 P1449 后缀表达式的更多相关文章
- STL Stack(栈)学习笔记 + 洛谷 P1449 后缀表达式
稍微看了看刘汝佳的白皮书,“实用主义”的STL实在是香到我了,而且在实验室大佬的推荐下我开始了stl的学习. 每篇附带一个题目方便理解,那行,直接开始. 毕竟是实用主义,所以就按照给的题目的例子来理解 ...
- 洛谷P1449 后缀表达式 题解 栈
题目链接:https://www.luogu.org/problem/P1449 这道题目我们只需要开一个栈,每次读取到一个数的话就将这个数 push 进栈. 因为提供给我们的时候已经是一个后续序列了 ...
- 洛谷 P1449 后缀表达式 Label:表达式计算系列
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...
- 洛谷 P1449 后缀表达式
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...
- 洛谷P1449——后缀表达式(栈模拟)
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...
- 【洛谷】P1449 后缀表达式
P1449 后缀表达式 分析: 简单的模拟题. 熟练容器stack的话很容易解决. stack,栈,有先进后出的特性. 比如你有一个箱子,你每放进第一个数时,就往箱底放,放第二个数时就在第一个数的上面 ...
- [题解]P1449 后缀表达式(栈)
题目链接:P1449 后缀表达式 题目描述: 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优 ...
- 洛谷 P1054 等价表达式
洛谷 P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式, ...
- 【洛谷p1981】表达式求值
题前废话: 咱也不知道咱写了个什么神奇的代码导致_rqy都看不明白它是怎么re掉的, 代码的大致思路是这样的:对于这样一个中缀表达式,先转化成它的后缀表达式的形式,然后利用P1449 后缀表达式 这道 ...
随机推荐
- FileUpload上传多张照片
<asp:FileUpload ID="uploaderInput" runat="server" multiple="multiple&quo ...
- Spring Security 解析(六) —— 基于JWT的单点登陆(SSO)开发及原理解析
Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...
- python基础04--list,cou,dict
1.1 列表list 1.列表可以完成大多数集合类的数据结构实现.列表中元素的类型可以不相同,它支持数字,字符串,列表,元组,集合,字典 2.列表是有序的, 可以索引,切片 3.List中的元素是可以 ...
- Java自学-异常处理 异常分类
Java 中异常的分类 异常分类: 可查异常,运行时异常和错误3种 其中,运行时异常和错误又叫非可查异常 步骤 1 : 可查异常 可查异常: CheckedException 可查异常即必须进行处理的 ...
- 并发编程--一堆锁,GIL,同步异步,Event事件
目录 一堆锁 死锁现象(*****) 递归锁 RLock (了解) 信号量 (了解) GIL(*****) 什么时GIL锁 为什么需要GIL锁 Cpython解释器与GC的问题 GIL锁带来的问题 多 ...
- 英语kutnahorite金田黄kutnahorite单词
金田黄是含镁和锰较多的方解石,学名是“镁锰方解石”或者“镁菱锰矿”,英文名为Kutnahorite,也可翻译为“锰白云石”.“金田黄”颜色艳丽,有红色.橙色或者黄色等不同色调,属于艳色方解石的集合体. ...
- 学习Spring5源码时所遇到的坑
学习Spring5源码时所遇到的坑 0)本人下载的源码版本是 spring-framework-5.0.2.RELEASE 配置好gradle环境变量之后,cmd进入到spring项目,执行gradl ...
- MySQL数据库中字符串函数之left、right用法
语法 LEFT(str,len) Returns the leftmost len characters from the string str, or NULL if any argument is ...
- docker配置镜像加速器
docker配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 sudo mkdir - ...
- 【转】大众点评CAT开源监控系统剖析
https://www.cnblogs.com/yeahwell/p/cat.html 参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监 ...