(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…

(stack 解析表达式)矩阵链乘

问题: 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.如果无法进行,输出error.如果A是m*n矩阵,B是n*p的矩阵,乘法次数为m*n*p 如果A的列数不等于B的行数,则乘法无法进行. A 50*10 B 10*20 C 20*5 &#xff08;A(BC))乘法次数&#xff1a;10*20*5(BC乘法次数)50*1…

mysql和维信公众号_mysql实用指南

mysqld --verbose --help&#xff1a;可以显示 mysql 的编译配置选项&#xff0c;即功能配置描述。mysql 显示所有支持的字符集&#xff1a; SHOW CHARACTER SET;mysql 创建数据库或表的时候设置是否大小写敏感&#xff1a;CREATE DATABASE test_database CHARACTER SET u…

(链表,插入元素)破损的键盘

题目&#xff1a; 你有一个破损的键盘。键盘上的所有键都可以正常工作&#xff0c;但有时Home键或者End键会自 动按下。你并不知道键盘存在这一问题&#xff0c;而是专心地打稿子&#xff0c;甚至连显示器都没打开。当你 打开显示器之后&#xff0c;展现在你面前的是一段悲剧的…

mac 强制删除mysql_mac中如何彻底删除MySQL

使用sudo rm /etc/my.cnfsudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/MySQL*vim /etc/hostconfig and removed the line MYSQLCOM-YES-rm -rf ~/Library/PreferencePanes/MySQL*su…

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

题目 有一棵二叉树&#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…

(二叉树的遍历)Tree UVa 548

题目&#xff1a; 给一棵点带权&#xff08;权值各不相同&#xff0c;都是小于10000的正整数&#xff09;的二叉树的中序和后序遍 历&#xff0c;找一个叶子使得它到根的路径上的权和最小。如果有多解&#xff0c;该叶子本身的权应尽量小。 输入中每两行表示一棵树&#xff…

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…

orchard mysql_Orchard Core创建CMS/Blog站点

安装.NET Core SDK安装visual studio community或者visual studio for MAC根据系统下载安装对应的visual studio版本使用VS创建ASP.NET Core工程本文示例使用的是visual studio for mac&#xff0c;创建ASP.NET Core工程项目 (.net core 版本选择最新版3.1)&#xff1a;创建后默…

(连续子序列)唯一的雪花

题目&#xff1a; 输入一个长度为n(n<1e6)的序列A&#xff0c;找到一个尽量长的连续子序列AL~AR,使得该序列中没有相同元素。输出最大长度。 分析与解答 对于这种子序列问题我们采用模拟的方法 方法一&#xff1a;利用set 1.如果有一个序列的元素没出现过&#xff0c;就…

php连接mysql开发环境_Windows下安装PHP开发环境

一、Apache因为Apache官网只提供源代码&#xff0c;如果要使用必须得自己编译&#xff0c;这里我选择第三方安装包Apache Lounge。首先下载并安装vc redist&#xff0c;这是Apache运行必需的一个组件。下载Apache解压版&#xff0c;将解压后的文件夹放在你想要安装的路径下。修…

(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…