P1449 后缀表达式-题解

【题解-洛谷】P1449 后缀表达式 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。,答案和计算过程中的每一个值的绝对值不超过。输出一个整数,表示表达式的值。为表达式的结束符号。为操作数的结束符号。 阅读详情

题目链接

1.栈的建立与常见用法

#include <stack>//头文件
//...
stack <A> s;//建立一个类型为A,名字叫s的栈

1.1. s.push(a):把 a 压入栈。

栈 s:

a a a

s.push(2020)

1.2. s.top():访问栈顶

栈 s:

2020 2020 2020(被访问)
a a a

1.3. s.pop():弹出栈顶

栈 s:

a a a

2020 2020 2020(被弹出)

2.表达式树的概念

下图 [ 1 ] ^{[1]} [1]是一棵表达式树,对应的后缀表达式是4 1 5 2 - * + 6 3 / -。

可以看出,每个运算符结点都有左子树和右子树,每个数字结点都是叶子节点。
表达式树的中序遍历就是中缀表达式。
运算方式:左子树的结果 运算符 右子树的结果
于是就可以得出代码:

3.code

//P1449
#include <iostream>
#include <stack>
using namespace std;
stack <int> n;
int s=0;
int main(){
    char ch;
    while(1){
        cin>>ch;
        if(ch<='9'&&ch>='0') s=s*10+ch-'0';//累计
        else if(ch=='.'){
            n.push(s);//压栈
            s=0;//s清零
        }
        else if(ch!='@'){
            int a1=n.top();n.pop();int a2=n.top();n.pop();//弹出栈顶两个元素
            if(ch=='+') n.push(a1+a2);
            if(ch=='-') n.push(a2-a1);
            if(ch=='*') n.push(a1*a2);
            if(ch=='/') n.push(a2/a1);
            //压入结果
        }
        else break;
    }
    cout<<n.top();
    return 0;
}

4.参考文献

[ 1 ] ^{[1]} [1] 图片来源

题解:洛谷 P1449 后缀表达式 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。输出一个整数,表示表达式的值。#普及-# #字符串入门#本文分享的必刷题目是从。为表达式的结束符号。为操作数的结束符号。 阅读详情

相关推荐

RK3588嵌入式AI部署实战:从环境搭建到模型推理全链路

嵌入式AI部署涉及交叉编译、NPU驱动、模型量化与运行时环境等多个技术环节,其核心挑战在于软硬件版本矩阵的严格匹配。在边缘计算场景中,RK3588凭借6TOPS NPU算力成为热门平台,但环境搭建与模型转换的复杂性常导致部署效率低下。通过容器化工具链管理、量化参数对齐及多线程推理优化,可显著提升部署稳定性与推理性能。典型应用包括智能安防、工业质检与视频结构化分析。本文围绕RK3588的AI部署与环境搭建,系统梳理从系统烧录到板端推理的完整实践路径。

weixin_42520573的博客 282

洛谷 P1449 后缀表达式

long long变为int,即为本题的题解代码。本题与上题基本相同。因此把上题题解代码中的。

君义NOIP的博客 1055

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 854

后缀表达式

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。 输入格式 输入:后缀表达式 输出格式 输出:表达式的值 代码如下: #include<bits/stdc++.h> using namespace std; char c[5]; int main().

Cipher的博客 556

CAN收发器选型避坑指南:TJA1051T与TJA1051T/3的硬件兼容性问题实录

本文详细解析了CAN收发器TJA1051T与TJA1051T/3的硬件兼容性问题,通过实测数据和故障案例揭示了VIO引脚的关键差异及其对系统的影响。提供从选型到验证的完整防坑方案,帮助开发者避免常见设计错误,确保CAN总线通信的稳定性。

weixin_42715608的博客 457

Claude Code启动失败解决方案,执行文件不兼容一键修复

Claude Code命令行工具突然报错,显示"不支持的16位应用程序"。作者排查Node版本无果后,发现是Anthropic更新导致Windows兼容性问题。解决方法很简单:卸载旧版、切换npm镜像源、重装最新版即可恢复。经验教训:遇到类似问题应先搜索社区反馈,避免无谓排查,同时注意npm源使用后及时还原。整个踩坑过程虽折腾,但最终只是简单的重装问题。

1459

【洛谷 P1449】后缀表达式 题解(栈+分支)

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。3*(5-2)+7。在该式中,为表达式的结束符号。为操作数的结束符号。

HEX9CF的技术博客 551

软件测试方法——等价类划分法详解

!如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图。

MXB1220的博客 1万+

洛谷P1449后缀表达式(#C语言)

题目:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号

m0_66163419的博客 819

使用YubiKey进行全盘加密、加密启动分区以及利用UEFI安全启动的详细指南

在本教程中,我们将使用YubiKey来增强电脑的安全性,通过加密整个硬盘,确保只有持有正确YubiKey的人才能访问。UEFI安全启动是一种在UEFI固件级别实施的安全标准,确保计算机仅启动签名的启动加载程序。为了符合您的要求,我将以此方式分配内容,确保每部分都有详尽的说明和代码。现在,您已经成功地使用YubiKey设置了全盘加密,并使用UEFI安全启动为系统增加了额外的安全层。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。

qq_38334677的博客 1006

【已解决】WorkBuddy 国内版与国际版共存 + 关闭自动更新 教程

本文介绍在Windows系统中同时安装并共存WorkBuddy国内版与国际版的完整方案,通过修改product.json文件关闭启动自动更新,修复缓存配置污染问题,确保两版本互不干扰、数据独立。重点解决因共享身份标识导致的更新源错乱、进程锁冲突及自动覆盖风险,提供命令行备份与修改步骤,并强调手动升级时需避免使用应用内更新功能,以规避平台参数错位缺陷。

人生是一场修行 1513

洛谷P1449 后缀表达式 题解

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。先将数据依次存入哈希表中,当遇到计算符号时,我们就要用到最后一个存的数,和倒数第二个存的数,用给出的计算符号计算相应答案,将答案取代存入哈西表的倒数第二个数值。数据保证,1≤∣s∣≤50,答案和计算过程中的每一个值的绝对值不超过 109。请出我们的老朋友——哈西表,哈哈是的没错我们还要用到它。输出一个整数,表示表达式的值。为表达式的结束符号。

2402_89695345的博客 465

锂电池的充电和放电曲线解读

锂电池充放电曲线是反映其性能的关键指标。充电曲线分为恒流和恒压两阶段:恒流阶段电压快速上升,恒压阶段电流逐渐降低;放电曲线则呈现平台期和快速衰减期特征。这些曲线受温度、充放电倍率及材料体系(如三元锂或磷酸铁锂)显著影响。通过分析曲线特征,可优化电池管理系统,实现精准的SOC估算、快充策略制定及故障诊断,从而在电池性能与安全性间取得平衡。不同应用场景(如新能源汽车或消费电子)对曲线形态有特定要求。

start_up_go的博客 5067

题解 P1449 【后缀表达式】

洛谷P1449 【后缀表达式】 这题其实思路很简单,就是每次碰到‘.’,将其前面的数字存入栈中。(注意:点号前的数字可能不止一位)。然后只要碰到操作运算符,就把存入栈中的数字拿出来运算好后,再放回去。最后栈就只剩一个最后的运算结果。 #include&lt;bits/stdc++.h&gt; using namespace std; char a[8000]; int main() { ...

zufesatoshi的博客 421

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

洛谷:P1449 后缀表达式Java题解

后缀表达式(也称为逆波兰表达式)是一种不需要括号就能明确运算顺序的表达式表示方法。运算符位于两个操作数之后,计算顺序严格从左到右进行,不需要考虑运算符优先级。• 空间复杂度:O(n),最坏情况下所有数字都需要入栈。• 时间复杂度:O(n),只需一次遍历整个字符串。

Java爱好者,热爱分享,信仰开源! 474

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【每日一题】P1449 后缀表达式 Java题解

每日一题打卡!

d1006913064的博客 889

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【洛谷】 P1449 后缀表达式 题解

根据后缀表达式的性质,我们在遇到数字的时候将数字根据顺序拼接计算好后再存储到栈里。需要注意的是,从栈中取出的第一个数运算时应该放在后面。后缀表达式不依赖于括号来表示运算符的优先级,而是通过运算符的位置来确定运算的顺序。所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。使用了同样的自定义类,但是根据题目需求,稍有更改。这道题可以使用C++的stl,也可以使用数组构造出来的栈结构,这道题与。

lcx_defender的博客 374

P1449 后缀表达式题解

栈的相关知识的运用和讲解

m0_72674633的博客 512

【洛谷】P1449 后缀表达式(栈)题解

原题链接:https://www.luogu.org/problem/P1449 题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。 输入输出格式 输入...

360°顺滑 948

洛谷P1449 后缀表达式(线性表-栈)

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

llz_112的博客 186

【题解】P1449 后缀表达式

输入反而是最麻烦的) 思路 跟那道P1981表达式求值挺像的,这题就是把在里面的加减乘除放到了要算的数字后面,就拿例子来说: 3.5.2.-*7.+@ 在这部分 3.5.2.-* 中我们可以看到3*(5–2)这个部分肯定是先算 - 号的,也就是说我们的运算顺序是按照在数字背后的运算符的顺序进行运算,先算的是 (5–2),也就是前面数字的最后两个进行减法运算,这就符合栈的规则,先进后出,值得注意的一点是要看清减数和被减数,是第二个出栈的减去第一个出栈的,除号也是如此,加号和乘号的话由于没有区别所以可以不用在意

Konse的博客 456

[洛谷题解]P1449-后缀表达式

0 前言 这里空空如也 1 题目 跳转 2 思路 就当不存在 代码有注释,懒得打... 3 代码 #include <string>//string #include <iostream> #include <stack> //栈的头文件 using namespace std; char g[10000]; in...

aodian2810的博客 251

P1449 后缀表达式题解--Sabrinadol--Sabrina

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。 输入输出格式 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值 输入输出样例 输入样例#1: ...

weixin_43889121的博客 425

【题解】洛谷P1449后缀表达式 栈

题目链接 #include&amp;lt;cstdio&amp;gt; #include&amp;lt;cstring&amp;gt; #include&amp;lt;stack&amp;gt; using namespace std; typedef long long ll; char a[10010]; int main(){ //freopen(&quot;in.txt&quot;,&quot;r&quot;,

翻过这座山,他们就会听到你的故事 318

洛谷 P1449 后缀表达式 题解 数据结构——栈 C语言实现

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。输入:后缀表达式输出:表达式的值 3.5.2.-*7.+@ 样例输出 #1 16 提示 字符串长度,1000内。其实这个后缀表达式计算的规则很简单,就是从左到右遍历表达式的每个数字和符号,遇到是数字的就进栈,遇到是符号,

Mer_Cheny的博客 471
上一篇: P1892 [BOI2003]团伙-题解
下一篇: P1075 质因数分解-题解
CSP_Sept
博客等级 码龄7年 4粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值