Schreiben Sie ein Programm , das eine Reihe von Nicht-Leerzeichen geht durch (Sie können davon ausgehen , dass sie Ziffern 0
zu 9
, aber nichts in der Art , wie sie verarbeitet werden sollen , hängt von dieser) und fügt Räume nach folgenden Regeln.
- Das aktuelle Token sei die leere Zeichenfolge, und die zuvor ausgegebenen Token seien eine leere Menge.
- Durchlaufen Sie die Zeichen der Zeichenfolge. Fügen Sie für jedes Zeichen zuerst das Zeichen an das aktuelle Token an. Wenn sich das aktuelle Token nicht bereits in der Gruppe der zuvor ausgegebenen Token befindet, fügen Sie das aktuelle Token zu dieser Gruppe hinzu und lassen Sie das neue aktuelle Token die leere Zeichenfolge sein.
- Wenn Sie das Ende der Zeichenfolge erreichen und das aktuelle Token leer ist, geben Sie die zuvor ausgegebenen Token in der Reihenfolge ihrer Ausgabe aus, getrennt durch ein Leerzeichen. Andernfalls geben Sie die ursprüngliche Zeichenfolge wörtlich aus.
Eingang
Die Eingabe in die STDIN sollte eine Folge von Ziffern sein.
Ausgabe
Das Programm sollte das Ergebnis wie in Schritt 3 angegeben drucken.
Proben
Beispieleingaben
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Beispielausgaben
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
Dies ist Codegolf, daher gelten Standard-CG-Regeln. Kürzestes Programm in Bytes gewinnt.
(Bitte fordern Sie Klarstellungen in den Kommentaren an. Ich bin noch neu darin. Danke!)
1 0 10
, wird die nächste Iteration gefunden 1
(bereits verwendet), dann wird eine zum Finden vorgerückt 10
(bereits verwendet), und dann wird eine zum Finden vorgerückt 101
, was neu ist und 'hinzugefügt' werden würde. Es würde dann ein Leerzeichen hinzugefügt und man würde zu einem neuen kommen 0
, der bereits verwendet wurde, aber hier am Ende der Zeichenkette steht. Daher wäre die Ausgabe 1 0 10 101 0
ungültig ( 0
wird wiederholt), und das Skript muss dann nur die Eingabezeichenfolge ausgeben. Es könnte nur machen, 1010
wenn 101
schon benutzt worden wäre.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
10101010 kann nicht geteilt werden und wird so gedruckt, wie sie ist.
1
, was eine Wiederholung wäre. Stattdessen bewegen Sie sich in Feld 5 nach rechts und in Schritt 4 erneut nach rechts. Geben Sie dann erneut Schritt 5 ein und erstellen Sie 101
.
4815162342
Ich sehe, was du dort getan hast, Brotha .