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; }