(stack栈)rails

题目:
某城市有一个火车站,铁轨铺设如图所示,有n节车厢从A方向驶入车站,按进站顺序编号为1至n。你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,你可以借助中转站C。这是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出车站。例如:出站顺序(5,4,1,2,3)是不可能的,而(5,4,3,2,1)是可能的。对于每节车厢,一旦从A移入C,就不能再回到A了;一旦从C移入B,就不能回到C了。换句话说,在任意时刻,只有两种选择A->C和C->B。

现在给你一种1到n的排列,请你判断是否是题目描述的一种可能,如果是请输出yes,否则输出no
输入
两行,第一行有一个正整数n,表示有n节车厢,第二行有n个正整数,即1到n的一种排列,两两之间有一个空格分隔。
输出
yes或者no
输入示例
5
5 4 1 2 3
输出示例
no

分析与解答:

原数组元素:1到n
目标数组元素:输入
栈:从栈顶到底,n到1
推论:出栈顺序要么是(进一个出一个),要么是栈顶出栈(进多个出一个)
1.当原数组元素等于目标数组元素时,先进栈再出栈即可,
2.否则判断栈顶元素是否等于目标数组,若相等栈顶元素出栈,
3.若不相等在数组不为空的情况下将原数组元素入栈。
4.若都不满足说明不符合条件,flag = 0,break。

#include<cstdio>
#include<stack>
using namespace std;
const int MAX=1000+10;int n,target[MAX];int main(){while(scanf("%d",&n)==1){stack<int> s;int a=1,b=1;for(int i=1;i<=n;++i)scanf("%d",&target[i]);int ok=1;while(b<=n){if(a==target[b]){a++;b++;}else if(!s.empty()&&s.top()==target[b]){s.pop(); b++;}else if(a<=n) s.push(a++);else {ok=0;break;}}printf("%s\n",ok?"Yes":"No");}return 0;
} 

8.2号更新:
这里写图片描述
模拟了一下过程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 查看镜像_Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指!...

来自小洋人最HAPPY投稿一、Docker简介Docker是开源应用容器引擎&#xff0c;轻量级容器技术。基于Go语言&#xff0c;并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux系统上&#xff0c…

(完全二叉树编号)小球下落

题目 有一棵二叉树&#xff0c;最大深度为D&#xff0c;且所有的叶子深度都相同。所有结点从上到下从左到右编号为1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;2eD-1。在结点1处放一个小球&#xff0c;它会往下落。每个结点上都有一个开关&#xff0c;初始全部关闭…

python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?

公众号新增加了一个栏目&#xff0c;就是每天给大家解答一道Python常见的面试题&#xff0c;反正每天不贪多&#xff0c;一天一题&#xff0c;正好合适&#xff0c;只希望这个面试栏目&#xff0c;给那些正在准备面试的同学&#xff0c;提供一点点帮助&#xff01;小猿会从最基…

(二叉树的动态创建与bfs)树的层次遍历

题目&#xff1a; 例&#xff1a;输入一棵二叉树&#xff0c;你的任务是按从上到下&#xff0c;从左到右的顺序输出每一个节点的值。每个节点都按照从根节点到它的移动序列给出(L表示左&#xff0c;R表示右)。在输入中&#xff0c;每个节点的左括号和右括号之间没有空格&#…

windows搭建tftp服务器_Ubuntu中搭建TFTP服务器

参考&#xff1a; 在Ubuntu中搭建TFTP服务器_小拇指的脑瓜子的博客-CSDN博客_ubuntu tftp​blog.csdn.net主要步骤&#xff1a;sudo apt-get install -y xinetd tftp tftpd2. 创建文件/etc/xinetd.d/tftp&#xff0c;内容如下&#xff1a;service tftp {socket_type dgrampro…

mysql undrop_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据

适用于&#xff1a;MySQL服务器版本4.1到5.6 [发行版4.1到5.6]本文信息适用于所有平台。目标如何使用undrop for innodb从损坏的表中提取数据解决方案使用工具有时可能从无法用innodb_force_recovery读取的表中恢复数据。undrop可以直接读取数据库的ibdata1文件&#xff0c;来获…

(二叉树DFS)天平UVa 839

题目 输入一个树状天平&#xff0c;根据力矩相等原则判断是否平衡。如图6-5所示&#xff0c;所谓力矩相等&#xff0c;就是WlDlWrDr&#xff0c;其中Wl和Wr分别为左右两边砝码的重量&#xff0c;D为距离。采用递归&#xff08;先序&#xff09;方式输入&#xff1a;每个天平的…

r语言怎么保存代码_R代码忘记保存,系统崩溃了怎么办?

R问题 跑程序时电脑突然崩溃,程序被强制中断导致代码不见了怎么办? 这些糟心的情况想必每个打工人都不想经历,偏偏我就是那个倒霉蛋,今早打开电脑发现昨晚写的代码忘记保存,心态崩到想当场飙眼泪,冷静下来之后开始寻找解决方案: 解决方案 按照下述路径找到history_datab…

(二叉树DFS)下落的树叶

题目&#xff1a; 给一棵二叉树,每个结点都有一个水平位置:左子结点在它左边1个单位,右子结点在右边1个单位。从左向右输出每个水平位置的所有结点的权值之和。如图所示,从左到右的3个位置的权和分别为7,11,3。按照递归(先序)方式输入,用-1表示空树。 Sample Input 5 7 -1 6…

(DFS)四分树

题目&#xff1a; 如图6-8所示&#xff0c;可以用四分树来表示一个黑白图像&#xff0c;方法是用根结点表示整幅图像&#xff0c;然后把行列个分城两等分&#xff0c;按照图中的方式编号&#xff0c;从左到右对应4个子结点。如果某子结点对应的取余全白或全黑&#xff0c;则直…

centos7.3 mysql5.7_CentOS7.3 yum install MySQL5.7

1.更新 yum mysql5.7 源2.yum mysql 源配置禁用MySQL5.6的源&#xff1a;#yum-config-manager --disable mysql56-community启用MySQL5.7的源&#xff1a;#yum-config-manager --enable mysql57-community-dmr3.查看 mysql install list#yum repolist enabled |grep mysql4.安装…

python切片原理_分析python切片原理和方法

使用索引获取列表的元素(随机读取)列表元素支持用索引访问&#xff0c;正向索引从0开始colors["red","blue","green"]colors[0] "red"colors[1]"blue"同时&#xff0c;也可以使用负向索引(python中有序序列都支持负向索引)c…

mysql max case连用_mysql 嵌套 case when 的问题

sql 语句如下&#xff1a;SELECTa.uc_id id,(CASE WHEN a.uc_realname IS NULL OR a.uc_realname THEN a.uc_sys_name ELSE a.uc_realname END) AS realName,a.uc_register_time registerTime,a.uc_phone phone,a.uc_last_login_time lastLoginTime,(CASEWHEN LEFT (a.uc_code,…

(二分搜索法尺取法)subsequence

题目 A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length of the subsequence of consecutive elements of the s…

mysql order by rand 优化_mysql order by与by rand() 的优化经验

介绍下MySQL中的order by语句。几种order by的情况从最简单的case开始看起。用这个表来说明&#xff1a;(10w行数据)1、 最简单的order ―― order by索引字段从explain的结果来看(Extra列)&#xff0c;这个语句并不作排序。因为字段a已经是有顺序的。就是按照索引a的顺序依次…

python locust api_干货 | 基于Locust的接口压测

作者介绍&#xff1a;吴锋雷。PP云高级测试工程师&#xff0c;拥有10年业务研发和测试经验&#xff0c;目前负责SDK及相关产品的测试工作。系统上线前一般要通过压力测试来判断下是否能承受预估的访问量&#xff0c;假设我们要测试的接口每天访问量是10万&#xff0c;那么平均下…

(贪心)区间问题大致思路

1.选择不相交区间。 a.描述&#xff1a; 数轴上有n个开区间(ai, bi)。选择尽量多个区间&#xff0c;使得这些区间两两 没有公共点。 b.思路总结&#xff1a; 1.区间x完全包含y&#xff0c;选y 2.按照bi从小到大排序&#xff0c;从第一个区间开始选 3.把所有和上一个区间相…

STM32的DHT11

DHT11基础 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传 感器。它应用专用的数字模块采集技术和温湿度传感技术&#xff0c;确保产品具有极高 的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测 温元件&#xff0c;并与一个高性能…

Java智能卡 技术_java智能卡APDU学习笔记

因项目需要&#xff0c;利用APDU通信协议在ME手机端和卡端进行通讯。在实践的过程中遇到一些问题&#xff0c;先记录如下。APDU协议&#xff0c;即是智能卡与读写器间的应用层协议&#xff0c;在ISO7816-4[7]中定义了该协议的结构格式。APDU数据有两种结构&#xff0c;读写器使…

(二叉树存储+递归遍历)Binary Tree Traversals

题目&#xff1a; A binary tree is a finite set of vertices that is either empty or consists of a root r and two disjoint binary trees called the left and right subtrees. There are three most important ways in which the vertices of a binary tree can be sys…