码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ZCMU--1208: 数据结构


    Description

    你有一个奇怪的数据结构,他可能是栈(stack),队列(queue),优先队列(priority_queue),或者其他什么奇怪的东西。

    假设有n个元素依次进入这个数据结构,并且知道这些元素出去的顺序,你能告诉我这个数据结构是什么吗?

    Input

    输入包括多组测试数据,每组测试数据的第一行为一个正整数n(1<=n<=1000),第二行包括n个整数代表进入的顺序,第三行也有n个整数代表出去的顺序。

    Output

    对于每组测试数据,输出可能的数据结构名字。如果有多个数据结构满足,则按顺序输出。若没有数据结构满足,则输出“none”。

    Sample Input

    3

    1  2  3

    1  2  3

    3 

    1  2  1

    1  2  1

    Sample Output

    queue  priority_queue

    stack  queue

    解析:1.栈:后进后出      2.队列:先进先出      3.优先队列:排序后顺序输出(从小到大,从大到小均可),然后我们可以开数组来三个都试一下能不能得出指定输出顺序即可😄

    1. #include <stdio.h>
    2. #include <algorithm>
    3. using namespace std;
    4. const int N=1005;
    5. int a[N],b[N],c[N];//a原始顺序,b输出顺序,c来存a数组sort排序后的数组
    6. int main()
    7. {
    8. int n,i,s,p;
    9. while(~scanf("%d",&n)){
    10. for(i=0;i<n;i++) scanf("%d",&a[i]),b[i]=a[i];
    11. for(i=0;i<n;i++) scanf("%d",&c[i]);
    12. s=1,p=0; //s来判断是否满足,p表示是否有满足结构
    13. for(i=n-1;i>=0;i--){ //栈
    14. if(a[i]!=c[n-i-1]){
    15. s=0; //不满足
    16. break;
    17. }
    18. }
    19. if(s==1) printf("stack"),p=1;//满足
    20. s=1; //重置一下s
    21. for(i=0;i<n;i++){ //队列
    22. if(a[i]!=c[i]){
    23. s=0;
    24. break;
    25. }
    26. }
    27. if(s==1){
    28. if(p==1) printf(" ");
    29. printf("queue");
    30. p=1;
    31. }
    32. s=1;
    33. sort(b,b+n); //排序一下
    34. for(i=0;i<n;i++){ //如果是从大到小排序
    35. if(b[i]!=c[n-i-1]){
    36. s=0;
    37. break;
    38. }
    39. }
    40. if(s==0){ //如果从大到小不满足,再试试从小到大
    41. s=1;
    42. for(i=0;i<n;i++){
    43. if(b[i]!=c[i]){
    44. s=0;
    45. break;
    46. }
    47. }
    48. }
    49. if(s==1){
    50. if(p==1) printf(" ");
    51. printf("priority_queue");
    52. p=1;
    53. }
    54. if(p==0) printf("none");//都不满足,输出none
    55. printf("\n");
    56. }
    57. return 0;
    58. }

        

  • 相关阅读:
    this 的五种绑定方式(默认 / 隐式 / 显式 / new 构造函数 / 箭头函数)
    【SSM框架】Mybatis详解03(案例源码文末自取)
    零售业变革下,数智化供应链系统精细化库存管理,构建企业数字化供应链体系
    C#源代码生成器深入讲解一
    主席树(可持久化权值线段树)的相关知识
    网站小程序开发有哪些步骤?
    459.重复的子字符串
    OpenCV透视变换——将斜方向的图片转成正方向鸟瞰图
    【swift】struct与class 的区别
    Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:轨道交通监控系统
  • 原文地址:https://blog.csdn.net/qq_63739337/article/details/125623722
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号