关于我们网站设计,pc端网站开发总结,西安网站建设方案托管,网架公司起名描述 现在#xff0c;有一行括号序列#xff0c;请你检查这行括号是否配对。 输入 第一行输入一个数N#xff08;0N100#xff09;,表示有N组测试数据。后面的N行输入多组输入数据#xff0c;每组输入数据都是一个字符串S(S的长度小于10000#xff0c;且S不是空串…描述 现在有一行括号序列请你检查这行括号是否配对。 输入 第一行输入一个数N0N100,表示有N组测试数据。后面的N行输入多组输入数据每组输入数据都是一个字符串S(S的长度小于10000且S不是空串测试数据组数少于5组。数据保证S中只含有[, “]”, “(”, “)” 四种字符 输出 每组输入数据的输出占一行如果该字符串中所含的括号是配对的则输出Yes,如果不配对则输出No 样例输入 3 [(]) (]) ([]) 样例输出 No No Yes
思路分析 ① 定义一个char类型的数字s【65535】负责存储数据;还有一个char类型的字符ch负责一个一个接收数据int类型的n负责控制次数 int类型的top负责查看s数组的下表。 ② 每输入一个ch进行判断若是‘’或是‘【’则top指向的s数组进行top将ch存入s里面 若ch为‘’并且s下标top0(说明s里面已经有元素了)并且s【top-1】‘’则top–
同理若ch为‘】’并且s下标top0(说明s里面已经有元素了)并且s【top-1】‘【’则top– ③ 最后判断top的值是否为0若是0则s里面没有剩余元素即全部匹配反之则没有完全匹配。
####代码如下
#includestdio.h
#includestring.hint main()
{char s[65535];int n;scanf(%d,n);getchar();while(n--){int top0;char a;while((agetchar())!\n){if(a) top0 s[top-1]()top--;else if(a] top0 s[top-1][)top--;else s[top]a;}if(top0) printf(Yes\n);else printf(No\n);}return 0;
}