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