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

洛谷 P1449:后缀表达式 ← 数组模拟栈

【题目来源】
https://www.luogu.com.cn/problem/P1449

【题目描述】
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右进行(不用考虑运算符的优先级)。
本题中运算符仅包含 +-*/。保证对于 / 运算除数不为 0。特别地,其中 / 运算的结果需要向 0 取整(即与 C++
/ 运算的规则一致)。
如:3*(5-2)+7 对应的后缀表达式为:3.5.2.-*7.+@。在该式中,
@ 为表达式的结束符号。. 为操作数的结束符号。

【输入格式】
输入一行一个字符串 s,表示后缀表达式。

【输出格式】
输出一个整数,表示表达式的值。

【输入样例1】
3.5.2.-*7.+@

【输出样例1】
16

【输入样例2】
10.28.30./*7.-@

【输出样例2】
-7

【说明/提示】
数据保证,
1≤∣s∣≤50,答案和计算过程中的每一个值的绝对值不超过 10^9

【算法分析】
● 数组模拟栈:
https://blog.csdn.net/hnjzsyjyj/article/details/130522133
● 如下代码,利用数组模拟栈,实现逆序输出。

#include <bits/stdc++.h>
using namespace std;const int maxn=105;
char s[maxn];int main() {char x;int top=0;int n;cin>>n;while(n--) {cin>>x;s[++top]=x;}while(top!=0) {cout<<s[top];top--;}return 0;
}/*
in:
5
abcdeout:
edcba
*/


【算法代码】

#include <bits/stdc++.h>
using namespace std;int a[55],top;int main() {char t=getchar();while(t!='@') {if(t>='0' && t<='9') {int num=0;while(t>='0' && t<='9') {num=num*10+(t-'0');t=getchar();}a[++top]=num;continue;}if(t=='+' || t=='-' || t=='*' || t=='/') {int x=a[top--], y=a[top--];switch(t) {case '+':a[++top]=y+x;break;case '-':a[++top]=y-x;break;case '*':a[++top]=y*x;break;case '/':a[++top]=y/x;break;}}t=getchar();}printf("%d",a[top]);return 0;
}/*
in:3.5.2.-*7.+@
out:16
*/





【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/130522133
https://www.luogu.com.cn/problem/solution/P1449
https://blog.csdn.net/hnjzsyjyj/article/details/145522672





 

http://www.dtcms.com/a/263215.html

相关文章:

  • JAX study notes[11]
  • vue-32(部署一个 Nuxt.js 应用程序)
  • 【PaddleOCR】PP-OCRv5:通用 OCR 产线的卓越之选
  • 一文详解Modbus协议原理、技术细节及软件辅助调试
  • 2025 湖南大学程序设计竞赛(补题)
  • 基于F5TTS的零样本语音合成
  • 第9篇:Gin配置管理-Viper的实战使用
  • 《JMS 消息重试机制与死信队列配置指南:以 IBM MQ 与 TongLinkQ 为例》
  • Java中的锁思想
  • Java开发者转型AI时代的路径
  • js代码04
  • (LeetCode 面试经典 150 题) 135. 分发糖果 (贪心)
  • vue3 el-table 列增加 自定义排序逻辑
  • 青少年 Python AI 科普小游戏设计方案
  • 成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用
  • 【windows上VScode开发STM32】
  • 【Debian】2-1 frp内网穿透原理
  • 第25天:高级数据库学习笔记1
  • WTL 之trunk技术学习
  • Compose入门1 - 高仿抖音 上下滑动播放视频
  • 深入解析JADX:专业Android逆向工程的利器
  • Oracle 进阶语法实战:从多维分析到数据清洗的深度应用​(第四课)
  • 大模型在多发性硬化预测及治疗方案制定中的应用研究
  • Stable Diffusion 项目实战落地:从0到1 掌握ControlNet 第三篇: 打造光影字形的创意秘技-文字与自然共舞
  • Java:Json反序列化自定义类
  • 计算机网络(一)层
  • 【基于Nest.js+React的全栈项目-00篇】开篇目录:25年新开系列文章,望多多支持~
  • 06_Americanas精益管理项目_数据分析
  • 卡片跳转到应用页面(router事件)
  • 阿里云-Docker的使用