Construção recursiva da árvore fractal de Huffman
Python
Hard
recursion
Tarefa «Construção recursiva da árvore fractal de Huffman»
Dada uma string de caracteres do alfabeto latino (letras minúsculas). É necessário construir a árvore fractal de Huffman: para cada caractere, calcular sua frequência, então construir recursivamente uma árvore onde cada nó contém a soma das frequências das subárvores esquerda e direita, e as folhas contêm os caracteres. Em cada passo da recursão, deve-se dividir a lista de caracteres em duas partes de modo que a soma das frequências na parte esquerda seja o mais próxima possível da soma das frequências na parte direita (algoritmo guloso). Retornar uma string representando a árvore em notação prefixada: para um nó — 'F{soma}', para uma folha — 'L{caractere}'. A recursão é obrigatória.
Formato de Entrada
Uma única string composta por letras minúsculas do alfabeto latino (comprimento de 1 a 100).
Formato de Saída
Uma string — notação prefixada da árvore sem espaços.
Exemplos
Exemplo 1
ENTRADA
1
42
SAÍDA
L1
Exemplo 2
ENTRADA
nil nil nil
SAÍDA
F11F6LnLiF5LlL
Exemplo 3
ENTRADA
abc
SAÍDA
F3LaF2LbLc
Exemplo 4
ENTRADA
0 1 2
SAÍDA
F5F3L0L F2L1L2
main.py