理解错题意了。。1.有多余的括号也可以。2.要输入空格,所以必须用fgets()或者getline().
下面是我理解题意的代码
#include<cstring>
#include<cstdio>
using namespace std;
const int lent=130;
char s[lent];
int pos,l;
bool is_true(int i){
if(s[i]==' '){
pos=i+1;
return true;
}
if(s[i]=='('){
if(s[i+1]==')'){
pos=i+2;
return true;
}
else if(s[i+1]==']'){
return false;
}
else{
pos=i+1;
while(s[pos]!=')'){
if(pos>=l||!is_true(pos)){
return false;
}
else {
continue;
}
}
pos=pos+1;
return true;
}
}
else if(s[i]=='['){
if(s[i+1]==']'){
pos=i+2;
return true;
}
else if(s[i+1]==')'){
return false;
}
else{
pos=i+1;
while(s[pos]!=']'){
if(pos>=l||!is_true(pos)){
return false;
}
else {
continue;
}
}
pos=pos+1;
return true;
}
}
return false;
}