Volver a Arrays y Strings
Arrays y Strings

Comprimir una Cadena

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 una cadena s. Devuelve su versión comprimida, donde cada secuencia de caracteres iguales consecutivos se reemplaza por ese carácter seguido de la cantidad de veces que aparece seguido.

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ía, devuelve la cadena vacía.
  • Tiempo O(n). Construir el resultado con += dentro del loop es O(n²) y no cuenta como solución.

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.