Python压缩运行长度编码

我正在尝试了解运行长度编码,我在网上发现了这个我无法做到的挑战.它要求你编写一个名为compression(strg)的压缩函数,它将长度为64的二进制字符串strg作为输入,并返回另一个二进制字符串作为输出.输出二进制字符串应该是输入字符串的行程编码.

compression(‘1010101001010101101010100101010110101010010101011010101001010101’)

‘1010101001010101*4’

  

这是我的,但这没有找到模式:

from itertools import *

def compression(strg):
    return [(len(list(group)),name) for name, group in groupby(strg)]

我需要一些帮助解决这个问题.

解决方法:

我相信你正在将RLE与Lempel / Ziv滑动窗口压缩混为一谈.

RLE严格适用于重复字符:WWWWWWWW => W8

LZ有一个滑动窗口,可以像你描述的那样拾取模式.

David MacKay的site在Python中有示例压缩代码,包括LZ

上一篇:javascript – 大数字阵列压缩


下一篇:c# – 如果浏览器可以显示deflate的Accept-Encoding,它是否可以处理.NET gzipped响应?