栈 —— 数据结构基础刷题路程

一、P1739 表达式括号匹配 - 洛谷

算法代码:

#include<bits/stdc++.h>
using namespace std;
const int N=300008;
struct mystack
{int a[N];int t=-1;//压栈void push(int data){a[++t]=data;	} //取栈顶元素int top(){return a[t];	} //弹出栈顶元素void pop(){if(t>-1){t--;	}	} //取栈的大小int size(){return t+1;	} //判空int empty(){return t=-1?1:0;	} 
};
int main()
{mystack st;char x;while(cin>>x){if(x=='@'){break;}if(x=='('){st.push(x);}if(x==')'){if(st.empty()){cout<<"NO";}else{st.pop();}}}if(st.empty()){cout<<"YES";}else{cout<<"NO";}return 0;	
} 

二、P1734 - [NewOJ Contest 4] 排列 - New Online Judge

算法代码: 

#include<bits/stdc++.h>
using namespace std;
const int N=300008;
int a[N]; 
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}stack<int> st;long long ans=0;for(int i=1;i<=n;i++){while(!st.empty()&&st.top()<a[i]){st.pop();if(!st.empty()){int last=st.top();ans+=(i-last+1);}}st.push(a[i]);}ans+=(n-1)*2;cout<<ans;return 0;	
} 

三、1.妮妮的神秘宝箱 - 蓝桥云课

算法代码:

#include <bits/stdc++.h>
using namespace std;int main() {string s;cin >> s;stack<char> st;for (char c : s) {if (c == '(' || c == '[' || c == '{') {st.push(c);} else if (c == ')' || c == ']' || c == '}') {if (st.empty()) {cout << "N";  // 统一输出为 "N"return 0;}char _top = st.top();if ((c == ')' && _top == '(') || (c == ']' && _top == '[') || (c == '}' && _top == '{')) {st.pop();}else{cout << "N";return 0;} }// 忽略其他字符(如 '.')}cout << (st.empty() ? "Y" : "N");return 0;
}

四、1.小蓝的括号串1 - 蓝桥云课

算法代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{stack<char> st;int n;cin>>n;char ch;while(cin>>ch){if(ch=='('){st.push(ch);}if(ch==')'){if(st.empty()){cout<<"No";return 0;}char _top=st.top();if(_top=='('&&ch==')'){st.pop();}}}if(st.empty()){cout<<"Yes";}else{cout<<"No";}return 0;
}

五、1.小邋遢的衣橱 - 蓝桥云课

算法代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,i;string t1,t2,t3;stack<string> a;cin>>n;for(i=0;i<n;i++){cin>>t1>>t2;if(t1=="in")a.push(t2);if(t1=="out"){if(a.empty())return 0;for(t3=a.top();t3!=t2;a.pop()){if(a.empty())return 0;t3=a.top();}}}if(a.empty())cout<<"Empty";elsecout<<a.top();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瑞昱RTD2556QR显示器驱动芯片

一、概述 RTD2556QR芯片是由Realtek公司精心研发的一款高性能显示驱动芯片&#xff0c;专为满足现代显示设备对高分辨率、多功能接口及稳定性能的需求而设计。该芯片凭借其卓越的技术特性和广泛的应用领域&#xff0c;在显示驱动市场中占据重要地位。它集成了多种先进的功能模…

PyQt5和OpenCV车牌识别系统

有需要请加文章底部Q哦 可远程调试 PyQt5和OpenCV车牌识别系统 一 介绍 此车牌识别系统基于PyQt5和OpenCV开发&#xff0c;蓝牌&#xff0c;新能源(绿牌)&#xff0c;黄牌&#xff0c;白牌均可以准确识别&#xff0c;支持中文识别&#xff0c;可以导出识别结果(Excel格式)。此…

学有所记- 探索FastAPI在docker上的部署

目标&#xff1a; 学习怎样在docker中安装部署FastAPI&#xff0c;完成项目结构的搭建以及hello world的运行 背景&#xff1a; 公司内服务器资源有限&#xff0c;为了共享算力资源&#xff0c;同时又能隔离运行环境&#xff0c;因此采用了docker部署的方式&#xff0c;进行各…

HTTP keepalive 详解

一、简介 HTTP协议早期版本&#xff0c;比如1.0&#xff0c;默认是不使用持久连接的&#xff0c;也就是每个请求/响应之后都会关闭TCP连接。这样的话&#xff0c;每次请求都需要重新建立连接&#xff0c;增加了延迟和资源消耗。Keep-Alive的作用是保持连接&#xff0c;让多个请…

长短期记忆神经网络(LSTM)基础学习与实例:预测序列的未来

目录 1. 前言 2. LSTM的基本原理 2.1 LSTM基本结构 2.2 LSTM的计算过程 3. LSTM实例&#xff1a;预测序列的未来 3.1 数据准备 3.2 模型构建 3.3 模型训练 3.4 模型预测 3.5 完整程序预测序列的未来 4. 总结 1. 前言 在深度学习领域&#xff0c;循环神经网络&…

基于机器学习的三国时期诸葛亮北伐失败因素量化分析

一、研究背景与方法论 1.1 历史问题的数据化挑战 三国时期&#xff08;220-280年&#xff09;的战争史存在史料分散、数据缺失的特点。本研究通过构建包含军事、经济、地理、政治四大维度的结构化数据库&#xff0c;收录建安十二年&#xff08;207年&#xff09;至建兴十二年…

蓝桥杯省模拟赛 数位和

问题描述 只能被 1 和本身整除的数称为质数。 请问在 1 &#xff08;含&#xff09;到 1000000 &#xff08;含&#xff09;中&#xff0c;有多少个质数的各个数位上的数字之和为 23 。 提示&#xff1a;599 就是这样一个质数&#xff0c;各个数位上的数字之和为 59923 。 #…

Timer的底层实现原理?

Timer 是 Java 中用于定时任务调度的基础工具类,其底层实现基于 单线程+任务队列 的模型。以下是 Timer 的底层实现原理的详细分析: 一、核心组件 TimerThread 继承自 Thread,是 Timer 的工作线程,负责从队列中提取任务并执行。通过 while (true) 循环持续检查任务队列。Ta…

Java 枚举类 Key-Value 映射的几种实现方式及最佳实践

Java 枚举类 Key-Value 映射的几种实现方式及最佳实践 前言 在 Java 开发中&#xff0c;枚举(Enum)是一种特殊的类&#xff0c;它能够定义一组固定的常量。在实际应用中&#xff0c;我们经常需要为枚举常量添加额外的属性&#xff0c;并实现 key-value 的映射关系。本文将详细…

青少年编程与数学 02-015 大学数学知识点 01课题、概要

青少年编程与数学 02-015 大学数学知识点 01课题、概要 一、线性代数二、概率论与数理统计三、微积分四、优化理论五、离散数学六、数值分析七、信息论 《青少年编程与数学》课程要求&#xff0c;在高中毕业前&#xff0c;尽量完成大部分大学数学知识的学习。一般可以通过线上课…

智能打印预约系统:微信小程序+SSM框架实战项目

微信小程序打印室预约系统&#xff0c;采用SSM&#xff08;SpringSpringMVCMyBatis&#xff09;经典框架组合。 一、系统核心功能详解 1. 智能化管理后台 ​用户数据看板​打印店资源管理​预约动态监控​服务评价系统 2. 微信小程序端 ​智能定位服务​预约时段选择​文件…

DataX 3.0 实战案例

第五章 实战案例 5.1. 案例一 5.1.1. 案例介绍 MySQL数据库中有两张表&#xff1a;用户表(users)&#xff0c;订单表(orders)。其中用户表中存储的是所有的用户的信息&#xff0c;订单表中存储的是所有的订单的信息。表结构如下&#xff1a; 用户表 users: id&#xff1a;用…

设计模式学习(1)

面向对象设计原则 单一职责 每个类只有一个职责&#xff0c;并被完整的封装在类中&#xff0c;该原则用来控制类的粒度。 例如Mapper&#xff0c;controller都只负责一个业务。 开闭原则 应该对扩展开放&#xff0c;而对修改封闭&#xff0c;例如定义接口或是抽象类作为抽…

在 Rocky Linux 9.2 上编译安装 Redis 6.2.6

文章目录 在 Rocky Linux 9.2 上编译安装 Redis 6.2.6Redis 介绍官网Redis 的核心特性高性能支持多种数据结构多种持久化机制复制与高可用2.5 事务与 Lua 脚本消息队列功能 Redis 适用场景Redis 与其他数据库对比Redis 的优势与劣势Redis 优势Redis 劣势 部署过程系统环境信息环…

量子计算与经典计算的融合与未来

最近研学过程中发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击下方超链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面进入文章正…

数据结构(4)——带哨兵位循环双向链表

目录 前言 一、带哨兵的循环双向链表是什么 二、链表的实现 2.1规定结构体 2.2创建节点 2.3初始化 2.4打印 2.5检验是否为空 2.6销毁链表 2.7尾插 2.8尾删 2.9头插 2.10头删 2.11寻找特定节点 2.12任意位置插入&#xff08;pos前&#xff09; 2.13删除任意节点 …

Github 2025-03-30 php开源项目日报 Top10

根据Github Trendings的统计,今日(2025-03-30统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10TypeScript项目1Coolify: 开源自助云平台 创建周期:1112 天开发语言:PHP, Blade协议类型:Apache License 2.0Star数量:10527 个Fo…

3. 线程间共享数据

1. 线程共享数据会造成什么问题&#xff1f; 1.1 读写不一致 多线程读不会造成数据变动&#xff0c;所以没有问题。只要有一个线程设计修改数据&#xff0c;就会导致数据共享出现问题&#xff0c;简单的是数据不一致&#xff0c;严重的是程序访问已经释放的内存&#xff0c;造…

JAVA垃圾回收算法和判断垃圾的算法

一、判断垃圾的算法 判断对象是否为垃圾的核心是确定对象是否不再被使用。Java主要采用以下两种算法&#xff1a; 1. 引用计数法&#xff08;Reference Counting&#xff09; 原理&#xff1a;每个对象维护一个引用计数器&#xff0c;记录被引用的次数。当引用被添加时计数器…

界面架构 - MVVM (Qt)

MVVM MVVM 的主要特点示例示例功能示例代码ViewModel 类&#xff08;C&#xff09;主函数入口&#xff08;main.cpp&#xff09; QML 文件&#xff08;main.qml&#xff09;总结 MVVM&#xff08;Model-View-ViewModel&#xff09;架构是一种旨在进一步分离界面和业务逻辑的设计…