Menu
CoddyTech

String Compression

Tu reçois une chaîne s composée de lettres anglaises. Compresse-la : remplace chaque suite d’au moins deux lettres identiques consécutives par cette lettre suivie de la longueur de la suite, et laisse telle quelle une lettre qui apparaît seule. Ainsi, aabccc devient a2bc3. Renvoie la chaîne compressée.

Les majuscules et les minuscules sont des lettres différentes : aA correspond à deux suites de longueur 1.

Fonction

compress(s: string) → string
sstring
la chaîne à compresser, lettres anglaises uniquement
Renvoiestring
la chaîne compressée, chaque séquence étant écrite sous la forme de sa lettre suivie de sa longueur lorsque celle-ci est supérieure à 1

Contraintes

  • 1 ≤ s.length ≤ 2 × 104
  • s ne contient que des lettres anglaises, de a à z et de A à Z.
  • Une longueur de séquence est écrite en décimal et peut comporter plusieurs chiffres.

Exemples

Entrée
s = "aabccc"
Sortie
"a2bc3"
Explication
Les séquences sont aa, b et ccc. Elles deviennent a2, b (une lettre isolée n’a pas de compteur) et c3.
challenge icon

Pour aller plus loin

Écrivez l’opération inverse : à partir d’une chaîne compressée telle que ab12, reconstruisez l’originale. Comment lire un nombre de répétitions composé de plusieurs chiffres ?

Réinitialiser le code
def compress(s):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

s = "aabccc"

Résultat attendu

"a2bc3"