题目链接:P1449 后缀表达式

题目描述:

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

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

输入格式:输入:后缀表达式

输出格式:输出:表达式的值

输入输出样例:

输入 #1

3.5.2.-*7.+@

输出 #1

16

分析:

的一大用处是表达式的计算。本题要求根据后缀表达式求值,我们可以使用栈在\(O(N)\)的复杂度内求出后缀表达式的值。

下面给出后缀表达式求值的具体步骤:



以下为P1449后缀表达式的题解:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll Stack[1200],x,top;char ch;
int main()
{
ios::sync_with_stdio(false);
while(cin>>ch&&ch!='@'){
if(isdigit(ch)) x=(x<<3)+(x<<1)+(ch^48);
else if(ch=='.'){Stack[++top]=x;x=0;}
else if(ch=='+'){
Stack[top-1]+=Stack[top];
Stack[top]=0;top--;
}
else if(ch=='-'){
Stack[top-1]-=Stack[top];
Stack[top]=0;top--;
}
else if(ch=='*'){
Stack[top-1]*=Stack[top];
Stack[top]=0;top--;
}
else if(ch=='/'){
Stack[top-1]/=Stack[top];
Stack[top]=0;top--;
}
}
printf("%d\n",Stack[1]);
return 0;
}

[题解]P1449 后缀表达式(栈)的更多相关文章

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

    目录 题目 思路 \(Code\) 题目 P1449 后缀表达式 思路 栈.题目说的不是很清楚,没说包含什么操作.除法用整数除法就行. 先string读入字符串,然后从前往后看如果是个数字就入栈,如果 ...

  2. STL Stack(栈)学习笔记 + 洛谷 P1449 后缀表达式

    稍微看了看刘汝佳的白皮书,“实用主义”的STL实在是香到我了,而且在实验室大佬的推荐下我开始了stl的学习. 每篇附带一个题目方便理解,那行,直接开始. 毕竟是实用主义,所以就按照给的题目的例子来理解 ...

  3. 【洛谷】P1449 后缀表达式

    P1449 后缀表达式 分析: 简单的模拟题. 熟练容器stack的话很容易解决. stack,栈,有先进后出的特性. 比如你有一个箱子,你每放进第一个数时,就往箱底放,放第二个数时就在第一个数的上面 ...

  4. 洛谷P1449 后缀表达式 题解 栈

    题目链接:https://www.luogu.org/problem/P1449 这道题目我们只需要开一个栈,每次读取到一个数的话就将这个数 push 进栈. 因为提供给我们的时候已经是一个后续序列了 ...

  5. 洛谷P1449——后缀表达式(栈模拟)

    题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...

  6. 【数据结构】P1449 后缀表达式

    [题目链接] https://www.luogu.org/problem/P1449 [题目描述] 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符 ...

  7. 洛谷 P1449 后缀表达式

    题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...

  8. P1449 后缀表达式

    题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...

  9. luogu P1449 后缀表达式 x

    题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...

随机推荐

  1. Multi-batch TMT reveals false positives, batch effects and missing values(解读人:胡丹丹)

    文献名:Multi-batch TMT reveals false positives, batch effects and missing values (多批次TMT定量方法中对假阳性率,批次效应 ...

  2. Django模型层ORM学习笔记

    一. 铺垫 1. 连接Django自带数据库sqlite3 之前提到过Django自带一个叫做sqlite3的小型数据库,当我们做本地测试时,可以直接在sqlite3上测试.不过该数据库是小型的,在有 ...

  3. 带修主席树 洛谷2617 支持单点更新以及区间kth大查询

    题目链接:https://www.luogu.com.cn/problem/P2617 参考博客:https://blog.csdn.net/dreaming__ldx/article/details ...

  4. 学习java应该具备哪些以及怎么学习java

    JAVA为什么有前途?过去的十多年,JAVA基本每年都是全世界使用人数第一的语言.全世界数百万的IT企业构建了庞大的JAVA生态圈,大量的软件基于JAVA开发. JAVA也被誉为“计算机界的英语”. ...

  5. Building Applications with Force.com and VisualForce(Dev401)(十八):Visualforce Pages: Introduction to Visualforce

    Dev401-020:Visualforce Pages: Introduction to Visualforce Course Objectives1.Understand the benefits ...

  6. 045.集群存储-CSI存储机制

    一 CSI存储机制 1.1 CSI简介 Kubernetes从1.9版本开始引入容器存储接口Container Storage Interface(CSI)机制,用于在Kubernetes和外部存储系 ...

  7. jmeter4.0介绍一

    apache JMeter™应用程序是开放源码软件, 一个100% 纯 Java 应用程序, 旨在加载测试功能行为和测量性能.它最初设计用于测试 Web 应用程序, 但后来扩展到其他测试功能. Jme ...

  8. Linux/CentOS7搭建Anaconda运行环境

    1. 安装miniconda 下载并安装miniconda到$HOME/.miniconda/ #从官网下载 wget -c "https://repo.anaconda.com/minic ...

  9. Eclipse无法查看第三方jar包源代码解决

    我在csdn写了过了:https://blog.csdn.net/weixin_40404606/article/details/105174820

  10. KA 接口表

    一.建表 1.年日均销量表 drop table app.app_basic_dashboard_goods_avg_year_sellnum; CREATE TABLE app.app_basic_ ...