回 帖 发 新 帖 刷新版面

主题:字符串编码问题

题目:在网络通信传输过程中,需要用到编码技术。由于网络只能传输01编码的比特流,所以在网络传输字符串的时候需要将字符串进行编码处理。对于不同的字符串,我们可以采取不同的编码方式。例如字符串“AAAAABCD”,如果用计算机中通用的ASCII编码对其进行编码,那么需要64个比特位(每个字符占8个比特)。如果用“00”表示“A”,“01”表示“B”,“10”表示“C”,“11”表示“D”,那么编码以上字符串只需要16个比特位。为了避免一个编码有多种解码方式,我们经常采用前缀编码。前缀编码指的是任何一个编码码字都不是其他编码码字的前缀。前缀编码可以有很多种编码方式,我们现在要寻找一种最优的编码方式使得编码所需比特位最少

   输入 一个字符串,仅包含大小写英文字母,字符串的长度小于100000。


   输出  输出所需的最短编码长度


   求助  这要怎么用C语言编出来?

回复列表 (共2个回复)

沙发

用哈夫曼编码,即可。
百度百科:http://baike.baidu.com/view/95311.htm

板凳


  能不能说的具体点,我基础比较弱

我来回复

您尚未登录,请登录后再回复。点此登录或注册