不会编程怎样建设网站,南充二手房最新出售信息,wordpress视频 小程序,织梦制作手机网站模板免费下载括号配对问题 #xff08;栈的使用#xff09;描述
现在#xff0c;有一行括号序列#xff0c;请你检查这行括号是否配对。
输入
第一行输入一个数N#xff08;0N100#xff09;,表示有N组测试数据。后面的N行输入多组输入数据#xff0c;每组输入数据都是一… 括号配对问题 栈的使用
描述
现在有一行括号序列请你检查这行括号是否配对。
输入
第一行输入一个数N0N100,表示有N组测试数据。后面的N行输入多组输入数据每组输入数据都是一个字符串S(S的长度小于10000且S不是空串测试数据组数少于5组。数 据保证S中只含有[,],(,)四种字符
输出
每组输入数据的输出占一行如果该字符串中所含的括号是配对的则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes 解题思路
首先判断奇偶性再将‘’与‘[’入栈依次判断是否能配对能配对的出栈否则就是不满足的情况停止循环。 代码如下
#include stdio.h
#include string.h
int main (void)
{int n,len,i,j,k,flag;char ch[10000],top[10000];while(scanf(%d,n) ! EOF){while(n--){flag 1;k0;scanf(%s,ch);len strlen(ch);if(len%2){printf(No\n);break;}for(i0;ilen;i){if(ch[i][ || ch[i]()top[k] ch[i];else if (ch[i]] top[k-1][ || ch[i]) top[k-1]()k--;else{flag 0;break;}}if(flag)printf(Yes\n);elseprintf(No\n);}}return 0;
}