Biorąc pod uwagę listę liczb w formacie skróconej sekwencji liczb całkowitych, wypisz sekwencję w całości.
Skrócony format sekwencji liczb całkowitych działa poprzez znalezienie każdej liczby n mniejszej liczby cyfr niż liczba poprzedzająca, m . Gdy d jest liczbą cyfr w n , ostatnie d cyfry m są zastępowane wszystkimi cyframi n . Oto przykładowe dane wejściowe:
123 45 6 7 89 200
Stosując regułę wymiany, najpierw zamieniamy 45 na 145, ponieważ 45 <123:
123 145 6 7 89 200
Wielokrotnie stosując tę samą regułę, staje się to:
123 145 146 7 89 200
123 145 146 147 89 200
123 145 146 147 189 200
Sekwencja jest teraz posortowana (nie ma liczb, których dotyczy reguła), więc jest to wynik końcowy.
Możesz to założyć
Skrótowa notacja jest zawsze używana, gdy jest to możliwe. Na przykład wejście będzie
12 3
, nigdy12 13
.liczby nigdy się nie zmniejszają, pozostając przy tej samej liczbie cyfr. Na przykład dane wejściowe nigdy nie będą
333 222
.zastosowanie reguły skróconej nigdy nie spowoduje, że liczba będzie nadal mniejsza niż poprzednia liczba w sekwencji. Na przykład dane wejściowe nigdy nie będą
123 12
.liczby zawsze będą dodatnimi liczbami całkowitymi i nigdy nie będą zawierać początkowych zer (w przypadku formatu ciągów).
pełna, rozszerzona sekwencja nigdy nie będzie zawierać duplikatów liczb. (Jednak sekwencja skrótów może; np.
10 1 20 1
->10 11 20 21
.)na wejściu będzie co najmniej jedna liczba.
Dane wejściowe i wyjściowe mogą być listami / tablicami liczb / ciągów znaków lub pojedynczym ciągiem znaków z elementami oddzielonymi dowolnymi cyframi.
Ponieważ jest to code-golf , wygra najkrótszy kod w bajtach.
Przypadki testowe, z wejściem i wyjściem w liniach przemiennych:
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
Odpowiedzi:
Galaretka, 7 bajtów
Wypróbuj online! lub zweryfikuj wszystkie przypadki testowe .
Jak to działa
źródło
JavaScript,
4542 bajtów3 bajty wyłączone dzięki @Neil .
Powyższa funkcja oczekuje tablicy ciągów.
Pokaż fragment kodu
źródło
z=z.slice(0,-x.length)+x,z=''
(lub wybranej nazwy zmiennej).s=>s.split` `.map(
jest ona o 2 bajty (tym razem dwukrotnie sprawdziłem) krótsza niżs=>s.replace(/\d+/g,
.Siatkówka, 45 bajtów
Używa grup bilansujących do liczenia cyfr, które dużo kosztują. Nie znalazłem jeszcze lepszego podejścia, ale interesuje mnie to.
Wypróbuj online tutaj.
źródło
Gema, 35 znaków
Dane wejściowe: ciąg znaków z liczbami oddzielonymi czymkolwiek, ciąg wyjściowy.
Przykładowy przebieg:
źródło
Ruby, 39 znaków
Dane wejściowe: tablica ciągów, dane wyjściowe: tablica ciągów.
Przykładowy przebieg:
źródło
Python 2 , 58 bajtów
Wypróbuj online!
źródło