Ecrire un programme qui passe par une chaîne de caractères non-blancs (vous pouvez supposer qu'ils sont des chiffres 0
à 9
, mais rien dans la façon dont ils doivent être traités en dépend) et ajoute des espaces selon les règles suivantes.
- Soit le jeton actuel la chaîne vide et les jetons précédemment émis un ensemble vide.
- Parcourez les caractères de la chaîne. Pour chaque personnage, ajoutez d'abord le personnage au jeton actuel. Ensuite, si le jeton actuel n'est pas déjà dans l'ensemble des jetons précédemment émis, ajoutez le jeton actuel à cet ensemble et laissez le nouveau jeton actuel être la chaîne vide.
- Si lorsque vous atteignez la fin de la chaîne, le jeton actuel est vide, sortez les jetons précédemment émis par ordre d'émission, séparés par un caractère espace. Sinon, affichez la chaîne originale textuellement.
Contribution
L'entrée du STDIN doit être une séquence de chiffres.
Sortie
Le programme doit imprimer le résultat comme spécifié à l'étape 3.
Échantillons
Exemples d'entrées
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Exemples de sorties
2 0 1 5
10101010
4 8 1 5 16 2 3 42
1 0 10 101 01 010
3 4 5 51 2 1 37 24 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 95 0 28 841 971 69 39 937
C'est du golf de code, donc les règles CG standard s'appliquent. Le programme le plus court en octets gagne.
(Veuillez demander des éclaircissements dans les commentaires. Je ne suis pas encore au courant. Merci!)
1 0 10
, l'itération suivante trouvera 1
(déjà utilisé), puis en avancera une pour trouver 10
(déjà utilisée), puis avancera une pour trouver 101
, ce qui est nouveau et serait «ajouté». Il ajouterait alors un espace et vous obtiendriez un nouveau 0
, qui a déjà été utilisé, mais est ici à la fin de la chaîne. Par conséquent, la sortie serait 1 0 10 101 0
, qui n'est pas valide ( 0
est répétée), et le script doit alors simplement sortir la chaîne d'entrée. Il ne pouvait faire que 1010
s'il 101
avait déjà été utilisé.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
10101010 ne peut pas être divisé, il est donc imprimé tel quel.
1
, ce qui serait une répétition. Au lieu de cela, vous vous déplacez à droite dans l'espace 5, puis vous vous déplacez à nouveau à droite à l'étape 4, et vous entrez à nouveau dans l'étape 5 et créez 101
.
4815162342
Je vois ce que tu as fait là-bas, brotha .