Zeichenkettenkompression nach der Regel aufeinanderfolgender Gruppen

Rust Hard strings

Aufgabe «Zeichenkettenkompression nach der Regel aufeinanderfolgender Gruppen»

Gegeben ist eine Zeichenkette, die aus Kleinbuchstaben des lateinischen Alphabets besteht. Es muss ein Algorithmus zur Zeichenkettenkompression implementiert werden: Wenn in der Zeichenkette eine Gruppe gleicher Symbole mit einer Länge größer als 1 vorkommt, wird diese Gruppe durch das Symbol und die Anzahl der Wiederholungen ersetzt (die Zahl wird ohne führende Nullen geschrieben). Wenn die Gruppe aus einem einzelnen Symbol besteht, bleibt sie unverändert. Geben Sie die resultierende komprimierte Zeichenkette aus. Die Länge der ursprünglichen Zeichenkette überschreitet 10^5 nicht.

Eingabeformat

Als Eingabe wird eine einzelne Zeichenkette S gegeben, die aus Kleinbuchstaben des lateinischen Alphabets (a-z) besteht. Die Länge der Zeichenkette beträgt 1 bis 10^5.

Ausgabeformat

Geben Sie eine einzelne Zeichenkette aus — die komprimierte Version der ursprünglichen Zeichenkette.

Beispiele

Beispiel 1

EINGABE
abc
AUSGABE
abc

Beispiel 2

EINGABE
aabbaa
AUSGABE
a2b2a2

Beispiel 3

EINGABE
97 98 99 97 98 99
AUSGABE
97 98 92 97 98 92
main.rs