• P4387 【深基15.习9】验证栈序列


    这道题最难的就是题意了,就是可以多次入栈,举个例子
    1 2 3 4
    那么我可以1先入栈,出栈,2入栈再出栈,3入栈再出栈,4入栈再出栈,这样出栈的顺序就是1 2 3 4
    也可以1,2先入栈再出栈,3,4入栈再出栈,这样出栈的顺序就是2 1 4 3;
    所以每入一次栈,我们就要出栈
    代码如下
    `#include<bits/stdc++.h>
    using namespace std;
    stacks;
    int a[100001],b[100001];
    int main(){
    int q,n,num;
    cin>>q;
    while(q--){
    cin>>n;
    for(int i=1;i<=n;i++){
    cin>>a[i];
    }
    for(int i=1;i<=n;i++) cin>>b[i];
    int k=1;
    for(int i=1;i<=n;i++){
    s.push(a[i]);
    while(s.top()==b[k]){ //每入栈一个数,就要检查是否出栈
    k++;
    s.pop();
    if(s.empty()) break;
    }
    }
    if(s.empty()) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    while(!s.empty()) s.pop();
    }
    }

    `

  • 相关阅读:
    Java基础-3y
    对线面试官面试系列-3y
    从零单排学Redis【青铜】
    mock官方文档
    route路由组件传递参数
    axios拦截器与vue代理设置
    Sass使用方法
    Less使用方法
    Vue-cli
    Vue-组件注册
  • 原文地址:https://www.cnblogs.com/zh1014/p/13461757.html
Copyright © 2020-2023  润新知