简单栈的应用,判断是否为好串的条件为对于每个'b',在左边均能找到一个'a'与其对应,故可用栈结构依次判断出现'b'是否栈里有'a'对应,有则ab一起出栈,无则不是好串,循环结束应判断是否有剩余的a
int main(){
char s[100005];
scanf("%s",s);
char p[100005];
char top=-1;
for(int i=0;i<strlen(s);i++){
p[++top]=s[i];
if(top==0&&p[top]=='b'){
printf("Bad\n");
return 0;
}
if(p[top]=='b'&&top>=0){
top-=2;
}
}
if(top>=0){
printf("Bad\n");
}else{
printf("Good\n");
}
return 0;
}
京公网安备 11010502036488号