Python压缩运行长度编码

use*_*664 3 python compression image run-length-encoding

我试图学习游程长度编码,但是我在网上发现了我做不到的挑战。它要求您编写一个称为compression(strg)的压缩函数,该函数将长度为64的二进制字符串strg作为输入,并返回另一个二进制字符串作为输出。输出二进制字符串应为输入字符串的游程长度编码。

压缩('1010101001010101101010100101010110101010010101011010101001010101')

'1010101001010101 * 4'

这是我所拥有的,但是找不到该模式:

from itertools import *

def compression(strg):
    return [(len(list(group)),name) for name, group in groupby(strg)]
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

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

LZ有一个滑动窗口,它将按照您的描述拾取图案。

David MacKay的站点上有使用LZ的示例压缩代码示例,包括LZ