2)依次扫描入栈出栈序列,每扫描至任意一个位置均需要检查出栈次数是否小于入栈次数
扫描结束后再判断入栈和出栈次数是否相同,不相同则为非法序列
bool judge(char A[]){
int i=0;
int j=k=0;
while(A[i]!='\0'){
switch(A[i]){
case'I':j++;break;
case'O':k++;
if(k>j){
printg("序列非法\n");exit(0);
}
}
i++;
}
if(j!=k){
printg("序列非法\n");
return false;
}else{
printf("序列合法\n");
return true;
}
}