¿Quieres un reto mayor?
Resuelve en 10:00
Importante: Para que se registre el resultado tienes que iniciar sesión.
Decodificar mensaje en columnas
Enunciado
Descripción
Un mensaje fue codificado así:
- Se escribió el mensaje original en una cuadrícula de
kcolumnas, fila por fila. - Si la última fila quedó incompleta, se rellenó con espacios.
- 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
exportal 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.