试题描述
|
输入
|
输出
|
输入示例
|
输出示例
|
其他说明
|
C程序:
#include <cstdio>
#include <cstring>
char s[60];
int len;
bool kh(int start, int end){
if(start > len || end > len){
return true;
}
if(start > end){
return true;
}
if(start + 1 == end && (s[start] == '(' && s[end] == ')') || (s[start] == '[' && s[start] == ']')){
return true;
}
for(int i = start + 1; i <= end; ++i){
if((s[start] == '(' && s[i] == ')') || (s[start] == '[' && s[i] == ']')){
if(kh(start + 1, i - 1) && kh(i + 1, end)){
return true;
}
}
}
return false;
}
int main(){
int n;
scanf("%d", &n);
for(int k = 1; k <= n; ++k){
scanf("%s", s);
len = strlen(s) - 1;
if(kh(0, len)){
printf("Yes\n");
}else{
printf("No\n");
}
memset(s, 0, sizeof(s));
}
return 0;
}