题目:
第一行输入一个数N(0
解决这道题,首先要知道括号配对满足的条件是什么。
1.左括号与右括号个数相等
2.左右括号配对次序正确
解决这道题要用到“栈”
输入字符串 从开始往后查 当遇到左括号时将之进入栈,继续往后查 当遇到右括号时就要与“栈”的首个比较看是否配对
当配对时 将配对的符号从栈中取出,不配对时即break;
以下两种情况还需特判一下
1.字符最后一个判断完了 但最后栈里是否还有。
2.栈里没有了 但查到了右括号即无法找到栈中左括号
上代码
#include
#include
char zhan[10010];////进栈
char s[10010];
int main()
{
int t,k,len,sign;//len用于判断是否停止
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
len=strlen(s);
k=-1;sign=1;
for(int i=0;i
如有细节错误请在下方评论指出,本人将不胜感激。