|Codificación HuffmanMaster
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 20:00

info

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

Codificación Huffman

Master100 pts·Algoritmos

Enunciado

Codificación Huffman

La codificación de Huffman es un algoritmo de compresión sin pérdida que asigna códigos binarios más cortos a los caracteres más frecuentes y códigos más largos a los menos frecuentes.

Tarea

Dada una lista de pares [caracter, frecuencia], construye el árbol de Huffman y devuelve un objeto con el código binario de cada carácter.

Reglas de desempate

  • La cola de prioridad extrae primero el nodo de menor frecuencia.
  • Si dos nodos tienen la misma frecuencia, se extrae primero el que tiene el carácter mínimo lexicográfico (para nodos internos usa el carácter mínimo de sus hojas).
  • Al fusionar dos nodos, el primero extraído (menor) queda como hijo izquierdo (código "0") y el segundo como hijo derecho (código "1").
  • Si solo hay un carácter, su código es "0".

Ejemplo

huffmanCodes([["a", 4], ["b", 2], ["c", 1]])
// Proceso:
// 1. Extraer c(1) y b(2) → nodo interno cb(3, min="b"). Left=c → "0", Right=b → "1"
// 2. Extraer cb(3) y a(4) → raíz(7, min="a"). Left=cb → "0", Right=a → "1"
// Resultado: { a: "1", b: "01", c: "00" }

huffmanCodes([["z", 5]])
// Resultado: { z: "0" }

Restricciones

  • 1 <= pares.length <= 26
  • Los caracteres son letras minúsculas únicas.
  • Las frecuencias son enteros positivos.
  • El resultado debe ser determinista (aplicar las reglas de desempate).
Restriccionesexpand_more
  • Dificultad: Master
  • Completa todos los test cases para obtener los 100 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
Codificación Huffman — Master | Coding Challenges · Coding Challenges