Dada a entrada de uma lista de números no formato de uma sequência inteira abreviada, produza a sequência na íntegra.
O formato abreviado de sequência de números inteiros funciona ao encontrar todos os números n com menos dígitos que o número anterior, m . Com d como o número de dígitos em n , os últimos d dígitos de m são substituídos por todos os dígitos de n . Aqui está um exemplo de entrada:
123 45 6 7 89 200
Aplicando a regra de substituição, primeiro transformamos 45 em 145 porque 45 <123:
123 145 6 7 89 200
Aplicando repetidamente a mesma regra, isso se torna:
123 145 146 7 89 200
123 145 146 147 89 200
123 145 146 147 189 200
A sequência agora está classificada (não há números aos quais a regra se aplica); portanto, esta é a saída final.
Você pode assumir que
notação abreviada é sempre usada quando possível. Por exemplo, a entrada será
12 3
, nunca12 13
.os números nunca diminuirão, permanecendo o mesmo número de dígitos. Por exemplo, a entrada nunca será
333 222
.a aplicação da regra abreviada nunca resultará em um número ainda menor que o número anterior na sequência. Por exemplo, a entrada nunca será
123 12
.os números sempre serão inteiros positivos e nunca contêm 0s iniciais (se estiver usando um formato de string).
a sequência completa e expandida nunca conterá números duplicados. (No entanto, a sequência abreviada pode; ex.
10 1 20 1
->10 11 20 21
.)haverá pelo menos um número na entrada.
A entrada e a saída podem ser listas / matrizes de números / cadeias ou uma única cadeia com elementos separados por qualquer dígito.
Como esse é o código-golfe , o código mais curto em bytes será vencedor.
Casos de teste, com entrada e saída em linhas alternadas:
1 2 3 10 1 2 20 5 100 200 10 3 5 26 9 99 999 9999
1 2 3 10 11 12 20 25 100 200 210 213 215 226 229 299 999 9999
223 1184 334 441 5 927 2073 589 3022 82 390 5 9
223 1184 1334 1441 1445 1927 2073 2589 3022 3082 3390 3395 3399
5 10 5 20 5 30 5 40 5 50 5
5 10 15 20 25 30 35 40 45 50 55
7 8 9 70 80 90 700 800 900 7000 8000 9000
7 8 9 70 80 90 700 800 900 7000 8000 9000
42
42