G - 数据结构实验之栈与队列七:出栈序列判定

2023-11-03

Description

给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。

例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列。假设压入栈的所有数字均不相等。

Input

第一行输入整数n(1<=n<=10000),表示序列的长度。

第二行输入n个整数,表示栈的压入顺序。

第三行输入整数t(1<=t<=10)。

后面依次输入t行,每行n个整数,表示要判断的每一个出栈序列。

Output

对应每个测试案例输出一行,如果由初始入栈序列可以得到该出栈序列,则输出yes,否则输出no。

Sample

Input

5
1 2 3 4 5
2
4 5 3 2 1
4 3 5 1 2

Output

yes
no

答案:

#include <iostream>
#include<bits/stdc++.h>
#define ll long long
const int N = 1e4 + 10;
using namespace std;

int main()
{
    int n;
    cin>>n;
    int i;
    int a[N];  //入栈顺序
    int b[N];  //出战顺序
    int q[N];  //模拟栈
    for(i=0; i<n; i++)
    {
        cin>>a[i];
    }
    int t;
    cin>>t;
    while(t--)
    {
        for(i=0; i<n; i++)
            cin>>b[i];
        int j=0;
        int k=0;
        int top=0;
        while(j<n)
        {
            if(a[j]==b[k])
            {
                j++;
                k++;
            }
            else if(top&&q[top-1]==b[k])
            {
                top--;
                k++;
            }
            else
            {
                q[top]=a[j];
                top++;
                j++;
            }
        }
        while(top&&q[top-1]==b[k])
        {
            top--;
            k++;
        }
        if(top)
            printf("no\n");
        else
            printf("yes\n");
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

G - 数据结构实验之栈与队列七:出栈序列判定 的相关文章

  • 我可以使用反射更改 C# 中的私有只读字段吗?

    我想知道 由于很多事情都可以使用反射完成 我可以在构造函数完成执行后更改私有只读字段吗 注 只是好奇 public class Foo private readonly int bar public Foo int num bar num
  • 如何自定义 DataTable 列的排序

    我需要对数据表列的值进行排序 该列包含字符串 整数或混合文本 例如 数据表列包含如下值 23 18 12 store 23 store a1 1283 25 如果我使用对值进行排序Dataview sort 方法会按此顺序产生 12 128
  • 如何向 UWP 项目添加 .NET dll 引用?

    我有几个适用于 NETv4 x 的 NET dll 项目 我将版本更改为 4 6 1 并重新构建 没有出现问题 当我尝试从 UWP 项目向它们添加引用时 出现错误 项目的目标是 NETCore 而文件引用的目标是 NET框架 这不是受支持的
  • LINQ to XML - 如何正确使用 XDocument

    现在我首先要说的是 这确实是一项任务 然而 在我遇到 Linq to XML 语法之前 我几乎已经完成了它 我有 2 个课程 曲目和 CD 现在作为作业的一部分 我创建了一张 CD 然后向其中添加了一些曲目 在搜索了大量完美解释了如何从 x
  • 测试 hdf5/c++ 中的组是否存在

    我正在打开一个现有的 HDF5 文件来附加数据 我想向那个叫做的小组保证 A存在以供后续访问 我正在寻找一种简单的方法来创建 A有条件地 如果不存在则创建并返回新组 或者返回现有组 一种方法是测试 A存在 我怎样才能高效地做到这一点 根据
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • 使用 VSTO 更改 Outlook 设置

    我刚刚花了大约 4 个小时试图弄清楚如何以编程方式检索 设置 Microsoft Outlook 2010 的 Outlook 设置 我所说的 设置 是指文件 选项 邮件下的设置 我想做的是检索用户设置的设置列表 自动化我们每天需要在某些消
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 控制台应用程序 .net Core 2.0 的配置

    在 net Core 1 中我们可以这样做 IConfiguration config new ConfigurationBuilder AddJsonFile appsettings json true true Build 这样就可以使
  • 根据拦截和返回值自动重试客户端WCF调用

    是否可以拦截 WCF 调用的结果并重试该操作 例如 操作的返回值可能包含状态代码 指示我传递到原始调用的会话令牌已过期 在这种情况下 我可以检索新的会话令牌并使用新的会话令牌重试调用 是否可以通过使用 WCF 拦截返回值 检查它 然后以对操
  • 推送 Lua 表

    我已经创建了一个Lua表C 但我不知道如何将该表推入堆栈顶部 以便我可以将其传递给 Lua 函数 有谁知道如何做到这一点 这是我当前的代码 lua createtable state libraries size 0 int table i
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • _mm_max_ss 在 clang 和 gcc 之间有不同的行为

    我正在尝试使用 clang 和 gcc 交叉编译一个项目 但在使用时发现一些奇怪的差异 mm max ss e g m128 a mm set ss std numeric limits
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode

随机推荐

  • Unity—关节、布料、角色控制器、视频播放

    开学啦 接下来学习Unity的寻路系统和射线 结尾有彩蛋呦 每日一句 少年特有的放浪不羁是青春的定义 目录 关节 布料 视频播放 Character Controller组件 关节 铰链关节 Hinge Joint 将两个刚体 Rigidb
  • jenkins fastlane淌坑记录

    目录 前言 管理证书 使用证书 构建命令 关于app托管 iOS的版本自增 testflight上传 fastlane下苹果的账号验证问题 iOS缓存问题 iOS打包会开启8081服务 fastlane获取最新代码 Fastlane完整代码
  • CSRF漏洞详解

    目录 一 CSRF漏洞原理 1 基本原理 2 流程图 3 条件 二 分类 1 GET型 2 POST型 三 危害 四 检测与防御 1 检测 2 防御 一 CSRF漏洞原理 1 基本原理 CSRF Cross site Request For
  • linux用c++获取mac地址,网卡地址,网口地址,网卡序号ip地址,不使用 ioctl(sock, SIOCGIFCONF, &ifc)获取网络接口名称,这个接口有时会返回-1获取不到,换方法获取

    linux用c 获取mac地址 不使用 ioctl sock SIOCGIFCONF ifc 获取网络接口名称 这个接口有时会返回 1获取不到 换方法获取 1 弃用 SIOCGIFCONF 获取网络接口名称列表 获取所有网络接口列表 ifc
  • # Python推荐系统学习笔记(3)------基于协同过滤的个性化推荐算法实战---隐语义模型

    Python推荐系统学习笔记 3 基于协同过滤的个性化推荐算法实战 隐语义模型 一 概念性理解 传统的推荐方法 UserCF 首先需要找到和他们看了同样书的其他用户 然后给他们推荐那些用户喜欢的其他书 ItemCF 需要给他们推荐和他们已经
  • SpringCloud-Hystrix服务降级与熔断简介与简单配置

    1 前言 作者最近在学习springcloud 本篇文章仅作为学习笔记 如有错误 敬请指正 2 Hystrix是什么 Hystrix是一个用于处理分布式系统的延迟和容错的开源库 在分布式系统里 许多依赖不可避免的会调用失败 比如 超时 异常
  • 8.常用统计分析方法——生存分析

    目录 生存分析基本概念 生存率估计 1 乘积极限法 2 寿命表法 3 生存曲线 生存曲线比较 COX比例风险回归模型 1 建立COX回归模型 2 比例风险假定的检验 3 生存预测 生存分析基本概念 logistic回归中因变量是终点事件发生
  • cocos creator碰撞和碰撞回调不生效

    1 碰撞不生效 一定要记得 在使用物理的时候 一定要先开启物理 cc director getPhysicsManager enabled true 只有在onLoad 中 开启 才有效 在onEnable 或者start 都无效 2 碰撞
  • Rational Rose 7.0安装教程

    关注公众号 免费获取资料 简介 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具 用于可视化建模和公司级水平软件应用的组件构造 就像一个戏剧导演设计一个剧本一样 一个软件设计师使用Ration
  • 性能测试之性能监控和性能优化

    目录 一 概述 二 jconsole和jvisualvm 三 jconsole 四 visualvm 1 输入命令提示 jvisualvm不是内部或外部命令 也不是可运行的程序或批处理文件 2 打开jvisualvm里面不包含GC监控 五
  • 基于低代码平台实现的免费CRM系统

    编者按 企业生存的根本是客户资源 因此客户关系的管理对于企业来说至关重要 目前我国中小企业对于客户的管理方法不够重视 以致于客户外流 客户转化率不高 而CRM客户关系管理系统有助于企业培养和增强客户关系 下面就让我们一起来了解一下企业该如何
  • 使用Java编写的简单行为树

    引言 试着用java把以前用c 写的行为树复现了出来 代码 import java util Random 假设有一士兵 初始生命为100 弹药为200发 每个弹匣40发 会逃跑 会巡逻 会攻击 会换弹 会补给 会发现敌人 class So
  • MyBatis基础语法

    1 namespace用于指定dao Mapper 层文件的路径 2 property传入的值与po SysUser的属性对应 3 column传入的值与数据库的字段对应 4 javaType传入的值 路径 是java这边的数据类型 5 j
  • C语言写九九乘法表(五种方法)

    当我们学习编程语言时 通常需要掌握一些基本的语法和功能 在C语言中 输出九九乘法表是一个很好的练习 因为它既简单又有趣 本文将介绍如何用C语言编写代码来输出九九乘法表 在开始之前 请确保您已经安装了C语言的开发环境 比如VS2019 首先
  • el-input 怎么添加鼠标悬浮内容展示

    您可以通过使用el tooltip组件的content属性将提示框附加到el input中 然后 您可以添加一个文本框和图标 当鼠标悬停在这些元素上时 提示框就会显示 以下是示例代码
  • 在 Python 中使用 MQTT的方法

    更多编程教程请到 菜鸟教程 https www piaodoo com 友情链接 高州阳光论坛https www hnthzk com Python 是一种广泛使用的解释型 高级编程 通用型编程语言 Python 的设计哲学强调代码的可读性
  • 【华为OD机试真题 python】组装最大可靠性设备【2023 Q2

    前言 华为OD笔试真题 python 本专栏包含华为OD机试真题 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 题目描述 组装最大可靠性设备 一个设备由N种类型元器件
  • QT的UDP协议

    UDP协议 客户端并不与服务器建立连接 它只负责调用发送函 数向服务器发出数据报 类似地 服务器也不从客户端接收连接 只负责调用接 收函数 等待来自某客户端的数据到达 客户端 端口号 quint64 初始化端口 quint64 port 5
  • idea 出现 Failure to find org.eclipse.m2e:lifecycle-mapping:pom:1.0.0 in http://maven.aliyun.com/

    使用mybatis autogenerator时失败 显示Failure to find org eclipse m2e lifecycle mapping pom 1 0 0 in http maven aliyun com nexus
  • G - 数据结构实验之栈与队列七:出栈序列判定

    Description 给一个初始的入栈序列 其次序即为元素的入栈次序 栈顶元素可以随时出栈 每个元素只能入栈依次 输入一个入栈序列 后面依次输入多个序列 请判断这些序列是否为所给入栈序列合法的出栈序列 例如序列1 2 3 4 5是某栈的压