括号配对问题(不用栈)

来源:互联网 发布:知天下资源吗 编辑:程序博客网 时间:2024/05/29 12:38
#include<iostream>
using namespace std;
int main()
{
char c[10000];
int n,m,i,j;
cin>>m;
while(m--)
{
cin>>c;
n=strlen(c);
if(n%2!=0)
{
cout<<"No"<<endl;
}
else
{
for(i=0;i<n;i++)
{
if(c[i]==']')
{
for(j=i-1;j>=0;j--)
{
if(c[j]=='[')
{
c[j]=0;
break;
}
}
if(i!=n-1&&j==0&&c[0]!='0')
{
cout<<"No"<<endl;
break;
}
}
if(c[i]==')')
{
for(j=i-1;j>=0;j--)
{
if(c[j]=='(')
{
c[j]=0;
break;
}
}
if(i!=n-1&&j==0&&c[0]!='0')
{
cout<<"No"<<endl;
break;
}
}
}                     
if(i==n)
{
cout<<"Yes"<<endl;
}
}
}
return 0;

}

//某oj上编译同不过,不知道为什么。

原创粉丝点击