给出一个有种字符组成的字符串,其中第种字符出现的次数为。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。

区块链毕设网qklbishe.com为您提供问题的解答

给出一个有给出一个有种字符组成的字符串,其中第种字符出现的次数为。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。种字符组成的字符串,其中第给出一个有种字符组成的字符串,其中第种字符出现的次数为。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。种字符出现的次数为给出一个有种字符组成的字符串,其中第种字符出现的次数为。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。

运行超时

运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。

5/10 组用例通过
运行时间2001ms
占用内存4764KB

import sys

def solution():
    lines=sys.stdin.readlines()
    for i in range(len(lines)):
        lines[i]=lines[i].strip().split(" ")
        lines[i]=[int(j) for j in lines[i]]
    num=lines[0][0]
    lines[1].sort()
    data=lines[1]
    node=[]
    for i in data:
        n=Node(i)
        n.assign_weight()
        node.append(n)
    while(len(node)>1):
         l=node[0]
         r=node[1]
         n=Node(0)
         n.lchild=l
         n.rchild=r 
         n.assign_weight()
         node=node[2:]
         node.insert(0,n)
         node.sort(key=lambda x:x.weight)
    
    wpl=calc_wpl(node[0],level=1)
    print(wpl)
    
def calc_wpl(n,level):
    wpl=0
    for i in [n.lchild,n.rchild]:
        if(Node.is_leaf(i)):
           wpl+=i.weight*level
        else:
           wpl+=calc_wpl(i,level+1)
    return(wpl)           
    
class Node():
    def __init__(self,weight):
        self.lchild=None
        self.rchild=None
        self.weight=weight
        self.parent=None

    def assign_weight(self):
        for i in [self.lchild,self.rchild]:
            if(i is not None):
                self.weight+=i.weight   
    
    def is_leaf(self):
        return(True if self.lchild is None and self.rchild is None else False)       

solution()

41:02

以上就是关于问题给出一个有种字符组成的字符串,其中第种字符出现的次数为。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给出一个有种字符组成的字符串,其中第种字符出现的次数为。请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。