行程长度编码科普

在某些情况下,一个字符可能在一个长序列中反复出现。在英语文本中,这种重复不常见,但在大的数据流中(如DNA序列)中,这种情况则经常出现。一种名为行程长度编码的文本压缩方法利用了这种情况。行程长度编码有时又称为迭代编码。
在行程长度编码中,重复字符的序列将被替换为标志字符,后面加重复字符和说明字符重复次数的数字。例如,下面的字符串由7个A构成:
AAAAAAAA
如果用*作为标志字符,这个字符串可以被编码为:
*A7
标志字符说明这三个字符的序列应该被解码为相应的重复字符串,其他文本则按照常规处理。因此,下列编码字符串:
n5 x9ccc*h6 some other text *k8eee
将被解码为如下的原始文本:
nnnnnxxxxxxxxxccchhhhhh some other text kkkkkkkkeee
原始文本包括51个字符,编码串包括35个字符,所以这个示例的压缩率为0.68。
注意,这个例子中有三个重复的c和三个重复的e都没有编码。因为需要用三个字符对这样的重复序列编码,所以对长度为2或3的字符串编码是不值得的。事实上,如果对长度为2的重复字符串编码,反而会使结果串更长。《行程长度编码科普》

    原文作者:游程编码问题
    原文地址: https://blog.csdn.net/Mactavish141/article/details/78536497
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞