hola:
en el stack no hay letras mezcladas (más allá de Zo): hay sólo A o sólo B, dependiendo de para qué lado esté desbalanceada la cuenta; cada letra en el stack indica qué letra habría que leer en la entrada para balancear la cuenta.
así, si en el stack hay A y vienen bes, seguirás apilando más A para compensar esta nueva b, pero si vienen aes tendrás que desapilar porque algunas de las letras que hacían falta se leyeron de la entrada. análogamente se hace en el caso donde el tope es B. Zo en el tope de la pila implica que las cantidades están balanceadas, o sea, la relación se cumple.
el punto más complicado de ver es cuánto hay que apilar o desapilar por cada letra, dado que la relación no es 1 a 1 sino 3-2. por eso cada letra desapila o apila una cantidad distinta: las aes apilan/desapilan de a 2, las bes de a 3.
para entender cómo funciona ese 3-2, te recomiendo probar con permutaciones de la tira aaabb.
saludos,
d.-