- 有效的括号
char pairs(char ch){//化一对为相等
switch(ch){
case '}':return '{';
case ')':return '(';
case ']':return '[';
default:return 0;
}
}
bool isValid(char * s){
int n = strlen(s);
int flag = 0;
int num = 0;
char stk[n+1];//1.用栈来实现
int j = 0;
for(int i=0;i<n;i++){//前半个括号入栈,后半个括号若匹配就出栈否则false
if(0==pairs(s[i])){
j++;//因为先j++,从1开始所以stk定义长度为n+1
stk[j]=s[i];
num++;
}
else{
if(pairs(s[i])==stk[j]){
j--;
num--;
}
else{
return false;
}
}
}
if(0==j){
return true;
}
else{
return false;
}
}