View Code of Problem 3913

#include<stdio.h>
#include<string.h>
char  a[100000];
char b[100000];
int main()
{	int n;//第一行为一个整数T(T<=100),表示T个测试数据。 
	scanf("%d",&n);
	while(n--)
	{
			scanf("%s",a);
	int len=strlen(a),t=0;;
	for(int i=0;i<len;i++)
	{
		if(a[i]=='(')
		{
			b[t++]=a[i];
		}
		else
		{
			t--;
			if(t<0)//右括号数量大于左括号数量 
			{
				break;
			}
		}
	}
	if(n!=0)
	{
		if(t==0)//每个'('均能在其右边找到与之唯一匹配的')'即合法。
		{
			printf("Yes\n");
		}
		else//两种情况:第一种:左括号数量小于右括号数量;第二种:左括号数量大于右括号数量 
		{
			printf("No\n");
		 } 
	}
	else
	{
			if(t==0)//每个'('均能在其右边找到与之唯一匹配的')'即合法。
		{
			printf("Yes\n");
		}
		else//两种情况:第一种:左括号数量小于右括号数量;第二种:左括号数量大于右括号数量 
		{
			printf("No\n");
		 } 
	 } 
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 3913