nyoj括号配对问题
来源:互联网 发布:android 仿淘宝分类 编辑:程序博客网 时间:2024/05/22 12:57
点击打开链接
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在,有一行括号序列,请你检查这行括号是否配对。
- 输入
- 第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
- 输出
- 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
- 样例输入
3[(])(])([[]()])
- 样例输出
NoNoYes
题解:此题是关于栈的问题,开始也是不怎么懂,总是以为只有stack那种才叫栈,后来才知道,不一定要用那个去实现,用平时的for就可以实现,只是这题参考了网上ac过的代码才通过,但觉得也是有点收获的。
下面是我的代码:
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<cstdlib>using namespace std;char str[100009];char str1[100009];int main(){int len,n;scanf("%d%*c",&n);while(n--){int top=1; // getchar();scanf("%s",str);len=strlen(str);str1[0]=str[0];if(len%2!=0){printf("No\n");}else if(str1[0]==')'||str1[0]==']')printf("No\n");else{for(int i=1;i<len;i++)//从1开始是因为第一个已经在上面判断过了 {str1[top]=str[i];if(str1[top-1]=='('&&str[i]==')')//这里是看是否配对 top--;//配对的话出栈 else if(str1[top-1]=='['&&str[i]==']')//与上同 top--;elsestr1[top++]=str[i];}if(top==0)printf("Yes\n");elseprintf("No\n");}}return 0;}
阅读全文
0 0
- NYOJ - 括号配对问题
- nyoj 括号配对问题
- NYOJ【括号配对问题】
- NYOJ-括号配对问题
- nyoj 括号配对问题
- NYOJ 括号配对问题
- nyoj括号配对问题
- nyoj 括号配对问题
- NYOJ-括号配对问题
- NYOJ 括号配对问题
- NYOJ - 括号配对问题
- NYOJ-括号配对问题
- nyoj 括号配对问题
- NYOJ 括号配对问题
- nyoj 括号配对问题
- 【NYOJ】括号配对问题
- NYOJ 括号配对问题
- nyoj括号配对问题
- 从概念到底层技术,一文看懂区块链架构设计(附知识图谱)
- #425
- HDU-2017 多校训练赛1-1002-Balala Power!
- Linux服务器上监控网络带宽的18个常用命令
- js全国城市三级联动
- nyoj括号配对问题
- 数据结构之线性表
- [android-wifi]开启,扫描与连接相关流程
- vue上传图片组件编写
- 对hibernate List一对多中list-index的理解
- Spark成长之路(11)-ngram
- 最令程序员沮丧的 10 件事
- 一篇彻底学会常用的sql语句
- 古典概型题目 python练习