行程长度编码科普

在某些情况下,一个字符可能在一个长序列中反复出现。在英语文本中,这种重复不常见,但在大的数据流中(如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的重复字符串编码,反而会使结果串更长。这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值