zoukankan      html  css  js  c++  java
  • YTU 3002: 出栈顺序(栈和队列)

    3002: 出栈顺序(栈和队列)

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 80  解决: 20

    题目描述

    给出一个入栈序列,和一个出栈序列,判断该出栈序列是否正确。

    输入

    输入包含三行,第一行为序列的长度N,第二行为N个数表示入栈顺序,第三行同样为N个数,表示出栈顺序。我们保证这N个数字不相同。

    输出

    如果该出栈序列正确,则输出“Yes”,否则输出“No”。

    样例输入

    5
    1 2 3 4 5
    5 4 3 2 1

    样例输出

    Yes

    提示

     1、入栈过程中可以出栈


    2、请使用C++编译并提交

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方…
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int n;
    typedef struct
    {
        int data;
        int w;
    } ab;
    ab a[105];
    int findd(int t)
    {
        for(int i=0; i<n; i++)
            if(a[i].data==t)return a[i].w;
        return 0;
    }
    bool panduan(int b[105],int l,int t)
    {
        int min=0xffff;
        for(int i=l+1; i<n; i++)
        {
            int k=findd(b[i]);
            if(k<t)min=min>k?k:min;
            if(k<t&&k>min)return 1;
        }
        return 0;
    }
    int main()
    {
        cin>>n;
        int b[105],i;
        for(int i=0; i<n; i++)
        {
            cin>>a[i].data;
            a[i].w=i;
        }
        for(i=0; i<n; i++)
            cin>>b[i];
        for(i=0; i<n; i++)
        {
            int t=findd(b[i]);
            if(panduan(b,i,t))break;
        }
        if(i!=n)cout<<"No"<<endl;
        else cout<<"Yes"<<endl;
        return 0;
    }
    


  • 相关阅读:
    在sql中日期转化
    SQL Server标准版企业版个人版区别
    Oracle 9i默认用户
    SQL Server和Oracle的常用函数对比
    Delphi6函数大全
    Oracle 不支持 TOP 关键字
    c#连接数据库
    VC6安装及打开工程文件问题的解决
    error C4430: 缺少类型说明符 假定为 int。注意: C++ 不支持默认 int
    VC++ dll导出类
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989379.html
Copyright © 2011-2022 走看看