当前位置: 首页 > news >正文

铁路(栈)

某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1~n。现让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,你可以借助中转站C。在程序中输入车厢数目和出站的特定顺序,如果可以则输出Yes,否者输出No。
样例输入:
5
1 2 3 4 5
5
5 4 1 2 3
6
6 5 4 3 2 1
样例输出:
Yes
No
Yes

分析:
考虑好入栈时会有哪些情况。

#include <iostream>
#include <cstdio>
#include <stack>
using namespace std;
const int MAXN = 1000 + 10;

int n, target[MAXN];

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;
}

相关文章:

  • Aspose------导入Excel
  • 生活:高效且健康的生活习惯
  • value toDF is not a member of org.apache.spark.rdd.RDD
  • MySql中把一个表的数据插入到另一个表中的实现代码
  • 图片定位问题
  • xencenter如何安装系统
  • ASP.NET MVC Model元数据及其定制: Model元数据的定制
  • 04-String
  • 社工-入侵
  • Spring声明式事务管理之一:五大属性分析
  • 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
  • UWP Popup 弹出提示框
  • 利用Dawn工程化工具实践MobX数据流管理方案
  • crontab_定时执行任务(python)
  • 【commons-io】File对文件与目录的处理FileUtis,IOUtils,FilenameUtils工具的使用
  • 【Leetcode】101. 对称二叉树
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Computed property XXX was assigned to but it has no setter
  • es6
  • GraphQL学习过程应该是这样的
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript设计模式与开发实践系列之策略模式
  • passportjs 源码分析
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • springMvc学习笔记(2)
  • Vue 2.3、2.4 知识点小结
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 前端路由实现-history
  • 为什么要用IPython/Jupyter?
  • 新书推荐|Windows黑客编程技术详解
  • 学习笔记TF060:图像语音结合,看图说话
  • 硬币翻转问题,区间操作
  • 主流的CSS水平和垂直居中技术大全
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​MySQL主从复制一致性检测
  • ​secrets --- 生成管理密码的安全随机数​
  • ​你们这样子,耽误我的工作进度怎么办?
  • #NOIP 2014# day.1 T2 联合权值
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (强烈推荐)移动端音视频从零到上手(上)
  • (正则)提取页面里的img标签
  • (转)LINQ之路
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • *Django中的Ajax 纯js的书写样式1
  • .NET 5种线程安全集合
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [\u4e00-\u9fa5] //匹配中文字符