Compression de séquence à l’aide d’itérateurs et de combinateurs

Rust Hard iterators

Tâche «Compression de séquence à l’aide d’itérateurs et de combinateurs»

On vous donne une séquence d’entiers. Vous devez implémenter une fonction qui compresse la séquence : remplace les entiers identiques consécutifs par une paire (nombre, nombre de répétitions). Utilisez des itérateurs et des combinateurs (par exemple, map, filter, fold, scan, collect). Données d’entrée : d’abord un entier N (1 ≤ N ≤ 10^5), puis N entiers. Affichez la séquence compressée sous forme de paires (nombre, nombre de répétitions) séparées par des espaces. Si la séquence est vide (N=0), affichez une ligne vide.

Format d\ entrée

Un entier N, puis N entiers séparés par des espaces.

Format de sortie

Paires (nombre, nombre de répétitions) séparées par des espaces. Chaque paire : nombre et nombre de répétitions séparés par une virgule sans espace. Si N=0, affichez une ligne vide.

Exemples

Exemple 1

ENTRÉE
SORTIE

Exemple 2

ENTRÉE
1 42
SORTIE
42,1

Exemple 3

ENTRÉE
SORTIE
main.rs