【栈】Rails

news/2024/10/8 2:07:59

https://ac.nowcoder.com/acm/contest/22669/D
这次直接ac,很爽

判断入栈后出栈序列的基本模板,需要熟练掌握

判断排列是否可行:

初始化 j = 1,表示当前需要匹配的排列序列下标。
for 循环遍历从 1 到 n 的车厢号,模拟将车厢入栈。
每次入栈后,通过 while 循环检查栈顶是否与 in[j] 匹配:
若匹配,说明车厢可以出栈,与目标顺序一致,因此将 j++,继续检查下一个目标车厢。
若不匹配,则继续入栈,直到车厢顺序符合要求或到达无法匹配的情况。

@Credit 迟缓的小章鱼在打卡

using namespace std;
int n;
bool end(){/*end函数用来接收每一个入栈序列的总数,
若是0则直接跳过循环*/cin >> n ;if (n) return true;else return false;
}
int in[1010];
int main(){while (end()){int k;stack<int> rails;cin >> k;/*k用来接收一个入栈序列块里的结束或者继续信号,下面while循环末尾也有一个k的cin接收,结合起来作为信号来结束一个入栈序列块的判断*/while (k) {while(!rails.empty()){rails.pop();}/*清空rails栈,很关键*/in[1] = k;/*这里in数组的初始化有一点不一样,因为第一个元素作为信号k参与结束判断,所以第一个元素初始化比较特殊*/for (int i = 2 ; i <= n ; i ++ ){cin >> in[i];}int j = 1 ;for (int i = 1 ; i <= n ; i ++ ){/*这里就是判断入栈后出栈序列的基本模板,需要熟练掌握*/rails.push(i);while(!rails.empty() && rails.top() == in[j]){rails.pop();j ++ ;}}if (rails.empty()) cout << "Yes" << endl;else cout << "No" << endl;cin >> k;if (k == 0) cout << endl;}}return 0;
}作者:迟缓的小章鱼在打卡
链接:https://www.nowcoder.com/discuss/623665475055083520
来源:牛客网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/68836.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

《机器学习》 学习记录 - 第二章

好多看不懂的高数内容。。。 第2章 模型评估与选择 2.1 经验误差与过拟合错误率(error rate):分类错误的样本数占样本总数的比例。 若在m个样本中有a个样本分类错误,则错误率\(E=a/m\); 而常说的 精度 则等于\(1-a/m\),即 “精度=1-错误率” ,常写为百分比形式。训练误差(…

git push代码失败,鉴权失败

github 无法push 代码 1、确保设置了用户名和邮箱 git config --global user.name "mars" git config --global user.email "mars3603@163.com" 2、修改 .git/config 中的url,将https的方式修改为 ssh https方式:url = https://github.com/Mars3603/grpc…

织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE

1.算法运行效果图预览 (完整程序运行后无水印)SIFT: surf:kaze: 2.算法运行软件版本 MATLAB2022a3.部分核心程序 (完整版代码包含注释和操作步骤视频)img1 = imread(Images\F1.jpg); img2 = imread(Images\F2.jpg); figure; subplot(121); imshow(img1); title(原始图片1)…

06.OpenFeign接口调用

1.提问 1.1 已经有RestTemplate + LoadBalancer的方式进行服务的调用,为什么还要有OpenFeign? 因为OpenFeign的功能更强大,和使用更便携。 1.2 使用那个? 推荐使用OpenFeign 2.OpenFeign是什么 2.1 官网翻译 https://docs.spring.io/spring-cloud-openfeign/reference/spri…

Hadoop单机模式

1.安装JDK 1.1 下载解压 tar zxf jdk-8u151-linux-x64.tar.gz -C /usr/local/src mv jdk-8u151-linux-x64 java1.2 添加环境变量 export JAVA_HOME=/usr/local/src/java export PATH=$PATH:$JAVA_HOME/binsource /etc/prifile java -version2.安装Hadoop 1.1 下载解压 tar zxf …

mysql读写分离的最佳实践

一. 传统的读写分离方式 在 MySQL 中实现读写分离可以通过以下几种方式来达到目的: 1. 主从复制 使用主从复制(Master-Slave Replication)是实现读写分离的常见方式。主库:处理所有的写入操作(INSERT、UPDATE、DELETE)。 从库:负责处理读操作(SELECT)。步骤:设置主从…

《机器学习初步》笔记 第一章

第一章 绪论 1.1 引言 机器学习的经典定义:利用经验(数据)改善系统自身的性能 经典的机器学习过程:机器学习最重要的理论模型:PAC(概览近似正确)1.2 基本术语 数据集:一组记录的集合 学习/训练:通过执行某个学习算法,得到模型,学的的模型对应数据的某种潜在规律 示例…