Inspirado por esta pregunta SO
Como entrada, se le dará una lista no entera de enteros, donde se garantiza que el primer valor no sea cero. Para construir la salida, camine desde el principio de la lista, generando cada valor distinto de cero en el camino. Cuando encuentre un cero, repita el valor que agregó más recientemente a la salida.
Puede escribir un programa o función, y hacer que la entrada / salida tome cualquier formato conveniente que no codifique información adicional, siempre y cuando siga siendo una secuencia ordenada de enteros. Si sale de un programa, puede imprimir una nueva línea final. Excepto por esta nueva línea final, su salida debe ser una entrada aceptable para su envío.
El código más corto en bytes gana.
Casos de prueba
[1, 0, 2, 0, 7, 7, 7, 0, 5, 0, 0, 0, 9] -> [1, 1, 2, 2, 7, 7, 7, 7, 5, 5, 5, 5, 9]
[1, 0, 0, 0, 0, 0] -> [1, 1, 1, 1, 1, 1]
[-1, 0, 5, 0, 0, -7] -> [-1, -1, 5, 5, 5, -7]
[23, 0, 0, -42, 0, 0, 0] -> [23, 23, 23, -42, -42, -42, -42]
[1, 2, 3, 4] -> [1, 2, 3, 4]
[-1234] -> [-1234]
[0,0]
?
01
no es un número entero válido en la entrada de Pyth, por lo que Isaac no tiene que dar cuenta de eso. Otras respuestas pueden aceptar entradas como esa si lo desean, siempre y cuando sean consistentes (como la respuesta de