Volver a Arrays y Strings
Arrays y Strings

Comprimir un String

Medio2 min de lectura

Reemplaza secuencias de caracteres repetidos por el carácter y su cantidad, construyendo el resultado sin concatenar en el loop.

Enunciado

Recibes un string s. Devuelve su versión comprimida, donde cada secuencia de caracteres iguales consecutivos se reemplaza por ese carácter seguido del número de veces que se repite.

Por ejemplo, "aabcccccaaa" se comprime a "a2b1c5a3": dos a, una b, cinco c, tres a.

Restricciones

  • La comprimida siempre lleva el número, incluso cuando la cuenta es 1. Así, "abc" da "a1b1c1", que es más largo que la entrada.
  • Distingue mayúsculas de minúsculas: "zZ" da "z1Z1".
  • Si s está vacío, devuelve el string vacío.
  • Tiempo O(n). Acumula las partes en una lista y únelas al final con join, en vez de concatenar con += dentro del loop; la solución explica por qué.

Ejemplos

sresultado
"aabcccccaaa""a2b1c5a3"
"abc""a1b1c1"
"aaaaaaaaaaaa""a12"
"a""a1"
""""

Pistas progresivas

0 de 3

    Intenta resolver el problema antes de ver pistas.

    Tu solución

    Cargando editor
    Escribe tu solución y pulsa Correr tests.

    Solución

    Intenta resolverlo primero. Ver la solución antes de tiempo recorta lo que aprendes.