括号配对问题----栈模拟
括号配对问题
- 描述
-
现在,有一行括号序列,请你检查这行括号是否配对。
- 输入
- 第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
- 输出
- 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
- 样例输入
-
3 [(]) (]) ([[]()])
- 样例输出
-
No No Yes
-
很简单的一个栈模拟,但是好像只能模拟着做,一用栈就爆栈.附一个模拟栈的代码:
-
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ans[10005],i,j,k,l,m,n,flag; char s[10005],c[10005],ch; int main() {scanf("%d",&k);while(k--){scanf("%s",s);memset(ans,0,sizeof(ans));l=strlen(s);if(l%2)printf("No\n");else{if(c[0]==')'||c[0]==']')//如果刚开始就是左括号,肯定无法配对printf("No\n");else{flag=0;for(i=0;i<l;i++){if(s[i]=='('||s[i]=='[')c[flag++]=s[i];ch=c[flag-1];//因为flag++了,所以要先判断减-;if(s[i]==ch+1||s[i]==ch+2)flag--;}}if(flag)printf("No\n");elseprintf("Yes\n");}} return 0; }
括号配对问题----栈模拟相关推荐
- 【ACM】括号配对问题 - 栈
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...
- H - Streets of Working Lanterns Gym - 101149H -括号匹配-栈模拟
H - Streets of Working Lanterns Gym - 101149H 题意:括号匹配,有很多"?",这些"?"可以凑成任意一种,判断最后能 ...
- 括号配对问题_栈stack
问题 A: 括号配对问题 时间限制: 3 Sec 内存限制: 128 MB 提交: 3 解决: 2 [提交][状态][讨论版] 题目描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第 ...
- P1944 最长括号匹配(栈模拟/DP)
P1944 最长括号匹配 可以直接用栈模拟,把匹配好的标记一下, 最后找到最长的匹配输出即可. 如果是要求最长的长度的题那么只需要求数就行了,没必要把原序列真的按照题意改变 如果要求序列,那么只需要按 ...
- 算法训练Day11 | LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)
目录 LeetCode232.用栈实现队列 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode225. 用队列实现栈 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 ...
- 代码随想录算法训练Day11 LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)
代码随想录算法训练Day11 | LeetCode232. 用栈实现队列(模拟):225.用队列实现栈(模拟):20. 有效的括号(栈应用):1047. 删除字符串中的所有相邻重复项(栈应用) 关于栈 ...
- NYOJ 括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...
- CodeForces - 224C. Bracket Sequence (栈模拟)简单做法
A bracket sequence is a string, containing only characters "(", ")", "[&quo ...
- NYOJ2—括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...
最新文章
- gradle平级项目引用
- 平均年薪50.8万,这个证书真!香!
- 网页全文搜索字符和全局搜索文件名【Edge和谷歌浏览器均适用】
- java define_Java Long类的define()方法与示例
- Ext Grid Json分页(asp.net)
- Python判断不可变对象(字符串,整数,浮点数,数组)相等的办法以及其底层实现原理
- winsock使用java编写_利用Socket进行Java网络编程(一)
- 同步监视器之同步代码块、同步方法
- 魅族16T“巨型”包装盒引人注目:旁边的16s Pro不要面子啊
- hdu 3183 A Magic Lamp (rmq)
- bert之我见 - positional encoding
- 在子MasterPage设置UserControl内的Web控件属性
- YOLO算法之车型识别
- Win1909+vs2019+Windows 10 WDK 2004(10.0.19041.1) + Windows 10 SDK 2004(10.0.19041.1)环境搭建
- css -- 背景图片自适应屏幕大小
- 世界的物质性及其发展规律
- 基于Mysql的智慧医疗管理系统
- 华为服务器故障灯不开机_华为服务器
- i9 10900K比9900K性能提升了多少?i9-10900K和i9-9900K区别对比评测 更多详情咨询世通兰陵王
- golang testify 测试库