括号配对问题
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
现在,有一行括号序列,请你检查这行括号是否配对。
#include <stdio.h>
int main( void ){
int t, i, j;
char a[10000], b[10001];
scanf("%d", &t );
getchar ( );
while ( t -- ){
gets ( a );
j = 1;
if ( a[0] == ']'|| a[0] == ')')
puts("No");
else {
b[j] = a[0];
for( i = 1; a[i] ; i ++ ) {
if ( !b[j] )
if ( a[0] == ']'||a[0] == ')') {
j = 1;
break;
}
else
b[++j] = a[i];
else
if(b[j] == '[')
if(a[i] == ')')
break;
else
if(a[i] == ']')
j--;
else
b[++j] = a[i];
else
if(a[i] == ']')
break;
else
if(a[i] == ')')
j--;
else
b[++j] = a[i];
}
if ( j )
puts("No");
else
puts("Yes");
}
}
return 0;
}