递归构建哈夫曼分形树
Python
Hard
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