|Decodificar mensaje en columnasMedio
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 10:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Decodificar mensaje en columnas

Medio25 pts·Strings

Enunciado

Descripción

Un mensaje fue codificado así:

  1. Se escribió el mensaje original en una cuadrícula de k columnas, fila por fila.
  2. Si la última fila quedó incompleta, se rellenó con espacios.
  3. Se leyó la cuadrícula columna por columna (de arriba hacia abajo, de izquierda a derecha). Eso es el mensaje codificado.

Tu tarea: dado el mensaje codificado (encoded) y el ancho k, recupera el mensaje original.

Cómo funciona la codificación

Mensaje original "abcde" con k = 3 columnas:

a  b  c
d  e  ·      (· = espacio de relleno)

Se lee columna por columna:

columna 0 → a d
columna 1 → b e
columna 2 → c

Codificado = "ad" + "be" + "c" = "adbec".

Tú recibes "adbec" y 3, y debes devolver "abcde".

Otro ejemplo

"HelloWorld" con k = 4:

H  e  l  l
o  W  o  r
l  d  ·  ·

Columnas: Hol, eWd, lo, lr → codificado "HoleWdlolr". Decodificar "HoleWdlolr" con 4 devuelve "HelloWorld".

Pista

El número de filas es Math.ceil(encoded.length / k). Reconstruye la cuadrícula llenándola columna por columna con los caracteres de encoded, y luego léela fila por fila.

Ejemplos

decodeMessage("adbec", 3)       // "abcde"
decodeMessage("HoleWdlolr", 4)  // "HelloWorld"
decodeMessage("abcd", 1)        // "abcd"  (k=1: una sola columna, ya está en orden)
decodeMessage("a", 1)           // "a"

Restricciones

  • 1 <= k <= encoded.length
  • El mensaje original no contiene espacios; los espacios de relleno solo existen dentro de la cuadrícula y no aparecen en el resultado.
  • Retorna el mensaje original sin espacios de relleno.
Restriccionesexpand_more
  • Dificultad: Medio
  • Completa todos los test cases para obtener los 25 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Decodificar mensaje en columnas — Medio | Coding Challenges · Coding Challenges