Рекурсивное построение фрактального дерева Хаффмана

Python Сложный recursion

Задача «Рекурсивное построение фрактального дерева Хаффмана»

Дана строка из символов латинского алфавита (строчные буквы). Необходимо построить фрактальное дерево Хаффмана: для каждого символа вычислить его частоту, затем рекурсивно построить дерево, где каждый узел содержит сумму частот левого и правого поддеревьев, а листья содержат символы. На каждом шаге рекурсии нужно разделить список символов на две части так, чтобы сумма частот в левой части была максимально близка к сумме частот в правой части (жадный алгоритм). Вернуть строку, представляющую дерево в виде префиксной записи: для узла — 'F{сумма}', для листа — 'L{символ}'. Рекурсия обязательна.

Формат ввода

Одна строка, состоящая из строчных латинских букв (длина от 1 до 100).

Формат вывода

Строка — префиксная запись дерева без пробелов.

Примеры

Пример 1

ВВОД
1 42
ВЫВОД
L1

Пример 2

ВВОД
nil nil nil
ВЫВОД
F11F6LnLiF5LlL

Пример 3

ВВОД
abc
ВЫВОД
F3LaF2LbLc

Пример 4

ВВОД
0 1 2
ВЫВОД
F5F3L0L F2L1L2
main.py