Inspirado por esta pergunta SO
Como entrada, você receberá uma lista não vazia de números inteiros, onde o primeiro valor é garantido como diferente de zero. Para construir a saída, caminhe desde o início da lista, produzindo cada valor diferente de zero ao longo do caminho. Quando você encontrar um zero, repita o valor que você adicionou mais recentemente à saída.
Você pode escrever um programa ou função e fazer com que a entrada / saída assuma qualquer formato conveniente que não codifique informações extras, desde que ainda seja uma sequência ordenada de números inteiros. Se estiver produzindo a partir de um programa, você poderá imprimir uma nova linha à direita. Exceto por esta nova linha à direita, sua saída deve ser uma entrada aceitável para o envio.
O código mais curto em bytes vence.
Casos de teste
[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
não é um número inteiro válido na entrada Pyth, portanto o isaac não precisa dar conta disso. Outras respostas pode aceitar a entrada como que se eles querem, contanto que eles são consistentes (como a forma como a resposta de isaac nunca produzirá essa lista como saída)