Ejemplo n.º 1
0
int main(void)
{
	int testcase;
	scanf("%d", &testcase);
	for (int itr = 0; itr < testcase; itr++)
	{
		Stack * stack = CreateStack();
		char str[110] = { 0, };
		//cin >> str;
		scanf("%s", &str);
		for (int i = 0; str[i] != '\0'; i++)
		{
			if (str[i] == '(')
				stack->InsertNode(str[i]);
			else if (str[i] == ')')
			{
				if (stack->SizeOfStack != 0 && stack->tail->str == '(')
					stack->DeleteNode();
				else if (stack->SizeOfStack == 0 || stack->tail->str == ')')
					stack->InsertNode(str[i]);
				else if (stack->SizeOfStack == 0)
				{
					cout << "NO" << endl; break;
				}
			}
		}
		if (stack->SizeOfStack != 0)
		{
			cout << "NO" << endl;
		}
		else
			cout << "YES" << endl;

	}

	return 0;
}