Compression 试图找出一个基本的模式查找算法
长话短说,我有一些数据需要找出其中的模式。数据是这样的(每个字符代表一个不可变的块):dabababadacdadab 我希望能够将这些数据分为以下几类块: d(重复1x) ab(重复3次) a(1x) cda(3倍) b(1x)Compression 试图找出一个基本的模式查找算法,compression,design-patterns,Compression,Design Patterns,长话短说,我有一些数据需要找出其中的模式。数据是这样的(每个字符代表一个不可变的块):dabababadacdadab 我希望能够将这些数据分为以下几类块: d(重复1x) ab(重复3次) a(1x) cda(3倍) b(1x) 我熟悉基本的游程长度编码,但当“thing”的长度可能是可变的(在我的示例中,cda是3个数据块,但d是一个数据块)时,我真的不知道如何做。我说得通吗?非常感谢您的帮助。这里的主要困难是算法的“贪婪性”及其可能产生的歧义。举个例子,告诉程序不要将字符串表示为: dx1
我熟悉基本的游程长度编码,但当“thing”的长度可能是可变的(在我的示例中,cda是3个数据块,但d是一个数据块)时,我真的不知道如何做。我说得通吗?非常感谢您的帮助。这里的主要困难是算法的“贪婪性”及其可能产生的歧义。举个例子,告诉程序不要将字符串表示为: dx1
ababab X 1这里的主要困难是算法的“贪婪性”及其可能产生的歧义。举个例子,告诉程序不要将字符串表示为: dx1 ababab X 1 cda X 1 b X 1 更糟糕的是: dx1 abababcdab X 1 你明白我的意思了。因此,您需要建立一组algo将遵循的规则,然后代码将自行编写。为了深入了解这一点,您可以尝试查看grep.c中的一些正则表达式解析代码,尽管这可能比您需要的更高级
作为一个开始,考虑一个算法: