【数据结构】P1449 后缀表达式
2024-09-05 04:27:20
【题目链接】
https://www.luogu.org/problem/P1449
【题目描述】
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。
如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。
输入格式
输入:后缀表达式
输出格式
输出:表达式的值
输入输出样例
输入 #1
3.5.2.-*7.+@
输出 #1
16
说明/提示
字符串长度,1000内。
【题解】:
基础的用栈模拟求解过程,直接用栈存储,然后遇到操作符就进行运算。
具体可以看代码
【代码】
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3+; char s[N];
//3.5.2.-*7.+@ ll Calc( ll u , ll v , char op){
switch( op ){
case '+' : return u+v;
case '-' : return u-v;
case '*' : return u*v;
case '/' : return u/v;
}
} int main()
{
list <ll> L ;
scanf("%s",s);
ll tmp = , u , v ;
for(int i=;s[i];i++){
if( isdigit(s[i]) ){
tmp = tmp * + s[i] - '' ;
}else if( s[i] =='.' ){
L.push_back(tmp) ;
tmp = ;
}else if( s[i] !='@' ){
v = L.back() ; L.pop_back() ;
u = L.back() ; L.pop_back() ;
L.push_back( Calc(u,v,s[i]) ) ;
}
}
printf("%lld\n",L.back());
return ;
}
最新文章
- python递归实现折半查找
- transform应用详解
- Three.js基础探寻十——动画
- iOS-Core Text 入门
- 第12章 MySQL高级管理
- 基于Activiti的流程应用开发平台JSAAS-WF V5.3
- BotVS开发基础—2.11 API绘制图表
- [UWP]使用Acrylic
- Java仪器数据文件解析-PDF文件
- Spring的声明式事务管理
- 【转廖大神】package.json 包安装
- supervisor //todo
- Nginx学习安装配置和Ftp配置安装
- VS 中的几种注释方法
- openx -书表添加字段
- Python UDP实例
- HDU3592(差分约束)
- 低危漏洞- X-Frame-Options Header未配置
- ZooKeeper是以Fast Paxos算法为基础的
- nginx 调试
热门文章
- springmvc返回json对象
- 20182332 实验四《Java Socket编程 》实验报告
- 解决JAVA单步调试键盘输入被JDB占用的问题
- DELPHI10.3.1安卓照相
- 安装mysql问题解决
- springboot动态定时任务
- delphi 中如何从数据库中读取数据自生成TreeView,只有两个字段,数据库结构如下。急急!!
- 阿里云服务出现TCP连接快速增加尤其是NON_ESTABLISHED大量增加导致内存和CPU暴增系统无法使用的问题
- JAVA WEB开放中的编码问题
- npm install --save react-native-device-info报错