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

【每日一题】YACS 473:栈的判断

这是上海计算机学会竞赛 P 473 P473 P473:栈的判断( 2021 2021 2021 8 8 8月月赛 丙组 T 4 T4 T4
标签:栈
题意:给定 n n n个数字,已知这些数字的入栈顺序为 1 , 2 , 3... , n 1,2,3...,n 1,2,3...,n,给定一个出栈顺序 a 1 , a 2 , a 3 . . . , a n a_1,a_2,a_3...,a_n a1,a2,a3...,an,判断出栈顺序是否合法。合法输出 V a l i d Valid Valid,不合法输出 I n v a l i d Invalid Invalid。( 1 < = n < = 1 0 5 1<=n<=10^5 1<=n<=105
题解:经典的出栈合法性判断。按入栈顺序正常入栈,当栈顶的元素和目前出栈顺序序列 a a a的第 k k k个相同的时候,不断地去出栈,同时把这个出栈下标 k k k往后移动,直到栈为空为止。(可以自己手动模拟一遍样例就比较好理解了)
代码

#include <bits/stdc++.h>
using namespace std;int a[100005], n, k = 1;
stack<int> s;int main() {cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= n; i++) {s.push(i); // 入栈while (s.top() == a[k]) {s.pop(); k++; // 出栈if (s.empty()) break;}}if (s.empty()) cout << "Valid";else cout << "Invalid";return 0;
}
http://www.lryc.cn/news/290628.html

相关文章:

  • Python - 整理 MySQL 慢查询日志
  • Python算法题集_无重复字符的最长子串
  • 12.Elasticsearch应用(十二)
  • linux -- 内存管理 -- SLAB分配器
  • 【MySQL】学习如何通过DQL进行数据库数据的条件查询
  • TS:子类型关系
  • IDEA插件(MyBatis Log Free)
  • Redis(八)哨兵机制(sentinel)
  • [数据结构]-哈希
  • 宝塔控制面板配置SSL证书实现网站HTTPS
  • elasticsearch优化总结
  • 图论第三天|127. 单词接龙 841.钥匙和房间 463. 岛屿的周长 1971. 寻找图中是否存在路径 684.冗余连接 685.冗余连接II
  • react的高阶函数HOC:
  • STM32——中断系统和外部中断EXTI
  • 使用uniApp+vue3+Vite4+pinia+sass技术栈构建微信小程序
  • npm 被滥用 -- 有人上传了 700 多个武林外传切片视频
  • 代码随想录算法训练营29期|day34 任务以及具体任务
  • LeetCode 每日一题 2024/1/22-2024/1/28
  • 好用的学习与开发工具
  • (自用)learnOpenGL学习总结-高级OpenGL-立方体贴图
  • 【计算机网络】——TCP协议
  • sql优化的方法
  • C++ Qt开发:运用QJSON模块解析数据
  • MySQL数据库基础合集
  • oracle19.22的patch已发布
  • HTML+CSS:3D轮播卡片
  • ES 分词器
  • 从0开始搭建若依微服务项目 RuoYi-Cloud(保姆式教程完结)
  • Linux true/false区分
  • 一些著名的软件都用什么语言编写?