2025-03-27 00:44:25 +08:00

54 lines
1.5 KiB
C

#include <stdio.h>
#define for_i(i, range, inner) \
{ \
int i; \
for (i = 0; i < range; i++) \
inner; \
}
#define putbool(x) (printf("%s\n", (x) ? "yes" : "no"))
#define bool int
#define true 1
#define false 0
int main() {
int n;
scanf("%d\n", &n);
for_i(i, n, {
char a[1000];
int p = -1;
char c;
bool flag = 1;
while ((c = getchar()) != '\n') {
if (!flag) {
continue;
}
switch (c) {
case '(':
case '[':
a[++p] = c;
break;
case ')':
case ']':
if (p < 0) {
putbool(false);
flag = 0;
break;
}
if (c == ')' && a[p] == '(' || c == ']' && a[p] == '[') {
p--;
} else {
putbool(false);
flag = 0;
break;
}
break;
default:
break;
}
}
if (flag) {
putbool(p < 0);
}
});
return 0;
}