Tomamos la secuencia de enteros de a , y los empujamos a una pila uno por uno en orden. Entre cada inserción, podemos elegir hacer estallar cualquier cantidad de elementos de la pila (desde 0 hasta el tamaño actual de la pila).
Cada vez que saquemos un valor de la pila, lo imprimiremos.
Por ejemplo, se imprime cuando lo hacemos push, pop, push, pop, push, pop
.proviene de push, push, push, pop, pop, pop
.
Sin embargo, no es una impresión posible, porque no es posible tener impreso seguido de , sin ver entre.
Pregunta: ¿Cómo podemos detectar órdenes imposibles como?
De hecho, según mi observación, he encontrado una solución potencial. Pero el problema es que no puedo probar que mi observación esté completa.
El programa que escribí con la siguiente lógica:
Cuando el valor actual menos el siguiente valor es mayor que 1, un valor entre actual y siguiente no puede aparecer después del siguiente. Por ejemplo, si current = 3 y next = 1, entonces el valor entre current (3) y next (1) es 2 que no puede aparecer después de next (1), por lo tanto viola la regla
¿Esto cubre todos los casos?