Construcción recursiva del árbol fractal de Huffman
Python
Hard
recursion
Tarea «Construcción recursiva del árbol fractal de Huffman»
Dada una cadena de caracteres del alfabeto latino (minúsculas). Es necesario construir un árbol fractal de Huffman: para cada carácter calcular su frecuencia, luego construir recursivamente un árbol donde cada nodo contenga la suma de las frecuencias de los subárboles izquierdo y derecho, y las hojas contengan los caracteres. En cada paso de la recursión se debe dividir la lista de caracteres en dos partes de modo que la suma de frecuencias en la parte izquierda sea lo más cercana posible a la suma de frecuencias en la parte derecha (algoritmo voraz). Devolver una cadena que represente el árbol en notación prefija: para un nodo — 'F{suma}', para una hoja — 'L{carácter}'. La recursión es obligatoria.
Formato de entrada
Una cadena compuesta por letras latinas minúsculas (longitud de 1 a 100).
Formato de salida
Cadena — notación prefija del árbol sin espacios.
Ejemplos
Ejemplo 1
ENTRADA
1
42
SALIDA
L1
Ejemplo 2
ENTRADA
nil nil nil
SALIDA
F11F6LnLiF5LlL
Ejemplo 3
ENTRADA
abc
SALIDA
F3LaF2LbLc
Ejemplo 4
ENTRADA
0 1 2
SALIDA
F5F3L0L F2L1L2
main.py