Aller au contenu principal
U/
Chaînes
polyglotte

Compression simple par répétition (RLE)

Encoder et décoder une chaîne de caractères par Run-Length Encoding : remplacer chaque séquence de caractères identiques consécutifs par le caractère suivi de son nombre de répétitions.

35 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

Énoncé

Le programme lit deux lignes : la première contient E (encodage) ou D (décodage), la seconde contient la chaîne à traiter. Pour E, il remplace chaque séquence de caractères identiques consécutifs par le caractère suivi du compteur (ex. aaaa3). Les caractères isolés sont suivis de 1 (ex. bb1). Pour D, il effectue l'opération inverse.

Contraintes

  • La chaîne d'entrée pour E contient uniquement des lettres ASCII minuscules, longueur ≤ 1 000.
  • Pour D, la chaîne encodée est garantie valide : alternance lettre/entier positif, longueur ≤ 4 000.
  • Les compteurs dans la sortie E et l'entrée D sont des entiers décimaux sans zéro initial.
  • Solution réalisable dans tout langage généraliste avec sa seule bibliothèque standard.

Exemple

Entrée :
E
aaabbbccddddde

Sortie :
a3b3c2d5e1
Entrée :
D
a3b3c2d5e1

Sortie :
aaabbbccddddde
Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.