Komprimierung einer Sequenz mithilfe von Iteratoren und Kombinatoren

Rust Hard iterators

Aufgabe «Komprimierung einer Sequenz mithilfe von Iteratoren und Kombinatoren»

Sie erhalten eine Sequenz von ganzen Zahlen. Implementieren Sie eine Funktion, die die Sequenz komprimiert: aufeinanderfolgende gleiche Zahlen werden durch ein Paar (Zahl, Anzahl der Wiederholungen) ersetzt. Verwenden Sie Iteratoren und Kombinatoren (z. B. map, filter, fold, scan, collect). Eingabedaten: zuerst eine ganze Zahl N (1 ≤ N ≤ 10^5), dann N ganze Zahlen. Geben Sie die komprimierte Sequenz als Paare (Zahl, Anzahl) getrennt durch Leerzeichen aus. Wenn die Sequenz leer ist (N=0), geben Sie eine leere Zeile aus.

Eingabeformat

Ganze Zahl N, dann N ganze Zahlen durch Leerzeichen getrennt.

Ausgabeformat

Paare (Zahl, Anzahl) durch Leerzeichen getrennt. Jedes Paar: Zahl und Anzahl durch ein Komma ohne Leerzeichen. Wenn N=0, geben Sie eine leere Zeile aus.

Beispiele

Beispiel 1

EINGABE
AUSGABE

Beispiel 2

EINGABE
1 42
AUSGABE
42,1

Beispiel 3

EINGABE
AUSGABE
main.rs