hola:
la idea, sí, es correcta: se divide en dos casos y se maneja el stack para contar más unas u otras. sin valorar lo correcto de la solución, se podía resolver sin utilizar dos símbolos para contar en el stack, básicamente apilando la cantidad "correcta" (con no determinismo). como el problema, además, es simétrico, probablemente llegues a un APD más simple, en donde la parte de "consumir tantas ces como marcas en el stack" sea común a ambos casos.
un consejo: no uses el mismo alfabeto en la entrada y el stack. en lugar de letras a y b, usá A y B en el stack. ¿por qué? porque si un día escribís alguna componente al revés (cosa que he visto más de una vez), a veces se entiende que fue un error de distracción; al revés, no. por ejemplo, si se quería escribir (éps, A), no es igual en la equivocación escribir (a, éps) o (A, éps)
saludos,
d.-