La tâche
Une chaîne S
est construite avec le processus suivant:
- Commencez par
S
être la chaîne vide. - Insérer à une certaine position d'
S
une chaîne du formulaireds
, oùd
est un chiffre différent de zéro ets
est une chaîne ded
lettres ASCII minuscules. Nous disonsds
est un constituant deS
. - Passez à l'étape 2 ou arrêtez.
Votre tâche consiste à prendre une telle chaîne en entrée et à sortir ses constituants concaténés en une seule chaîne, dans l'ordre d'apparition de leurs premiers chiffres. La sortie doit être une seule chaîne et il ne peut pas y avoir de délimiteurs (y compris les sauts de ligne) entre les constituants. Vous pouvez choisir si les chaînes d'entrée et de sortie ont des guillemets. Notez que l'entrée et la sortie ne seront jamais vides.
Exemple
Construisons une chaîne avec le processus ci-dessus. La structure des constituants est mise en évidence dans le résultat final.
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
└┘│└┴┴┘│└┴┘││
└────┴───┴┘
La sortie est obtenue en concaténant les constituants dans l'ordre de leurs chiffres. Dans ce cas, la sortie correcte est
"1x3abc3tty2gh"
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
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
fait vous fait économiser 2 octets. Le changement de nomint
n'est bénéfique qu'après 4 utilisations.Java 8, 152 octets
Explication:
Essayez-le ici.
la source
Python 2 ,
151147135 135 octetsEssayez-le en ligne!
Explication:
Le code conserve deux listes de groupes constitutifs,
d and D
.Chaque caractère de la chaîne est ensuite scanné:
d
Lorsqu'un groupe a la même longueur que son chiffre, le groupe est supprimé de
d
.À la fin, le
D
est concaténé, car les groupesD
sont dans l'ordre d'origine.Exemple:
la source