Zadanie
Ciąg S
jest konstruowany w następujący sposób:
- Zacznij od
S
bycia pustym ciągiem. - Wstaw w pewnej pozycji
S
ciągu formularzads
, gdzied
jest niezerową cyfrą is
jest ciągiemd
małych liter ASCII. Mówimyds
to składnik stanowiS
. - Przejdź do kroku 2 lub zatrzymaj.
Twoim zadaniem jest pobranie takiego ciągu jako danych wejściowych i wyprowadzenie jego składników połączonych w jeden ciąg, w kolejności występowania ich wiodących cyfr. Dane wyjściowe muszą być pojedynczym łańcuchem i między elementami nie mogą znajdować się żadne separatory (w tym znaki nowej linii). Możesz wybrać, czy ciągi wejściowe i wyjściowe mają cudzysłowy. Zauważ, że wejście i wyjście nigdy nie będzie puste.
Przykład
Stwórzmy ciąg z powyższym procesem. Struktura składników jest podkreślona w wyniku końcowym.
S = "" // Insert "3abc"
S = "3abc" // Insert "2gh" after 'a'
S = "3a2ghbc" // Insert "1x" before '3'
S = "1x3a2ghbc" // Insert "3tty" after '3'
S = "1x33ttya2ghbc" // Final result
└┘│└┴┴┘│└┴┘││
└────┴───┴┘
Dane wyjściowe uzyskuje się przez połączenie składników w kolejności ich cyfr. W takim przypadku poprawne wyjście to
"1x3abc3tty2gh"
Zasady i punktacja
Możesz napisać pełny program lub funkcję. wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.
Przypadki testowe
1k -> 1k
4asdf -> 4asdf
111xyz -> 1z1y1x
8whatever3yes -> 8whatever3yes
8what3yesever -> 8whatever3yes
1x33ttya2ghbc -> 1x3abc3tty2gh
63252supernestedstrings2ok -> 6trings3eds2st5perne2su2ok
9long3yes4lo2ngwords11here -> 9longrdsre3yes4lowo2ng1e1h
9abc8de7fg6hi5jk4lm3o2pq1rstuvwxyzabcdefghijklmnopqrst -> 9abcopqrst8deijklmn7fgdefgh6hizabc5jkwxy4lmuv3ost2pq1r
if z in k:m+=N(z)+1
.N=int
faktycznie oszczędza 2 bajty. Zmiana nazwyint
jest korzystna dopiero po 4 użyciach.Java 8, 152 bajty
Wyjaśnienie:
Wypróbuj tutaj.
źródło
Python 2 ,
151147135 bajtówWypróbuj online!
Wyjaśnienie:
Kod przechowuje dwie listy grup składowych,
d and D
.Następnie skanowany jest każdy znak ciągu:
d
Gdy grupa ma taką samą długość jak jej cyfra, grupa jest usuwana
d
.Na koniec
D
konkatenowane, ponieważ grupy wD
są w oryginalnej kolejności.Przykład:
źródło