rle压缩解压算法
时间: 2023-07-10 07:26:47 浏览: 108
RLE压缩算法是一种简单的无损数据压缩算法,它基于一种简单的原理:连续重复出现的字符可以用一个计数器和一个字符来代替。例如,字符串"AAAAABBBBCCCC"可以被压缩为"5A4B4C"。
RLE解压缩算法则是将压缩后的字符串逐个字符地读入,如果是数字,则将其保存到计数器中;如果是字母,则将其重复计数器所表示的次数,再将其添加到解压缩后的字符串中。
下面是一个Python实现的RLE压缩和解压缩算法示例:
```python
def rle_compress(s):
result = ''
count = 1
for i in range(1, len(s)):
if s[i] == s[i-1]:
count += 1
else:
result += str(count) + s[i-1]
count = 1
result += str(count) + s[-1]
return result
def rle_decompress(s):
result = ''
count = ''
for c in s:
if c.isdigit():
count += c
else:
result += c * int(count)
count = ''
return result
```
例如,对于字符串"AAAAABBBBCCCC",可以进行如下的压缩和解压缩操作:
```python
>>> rle_compress('AAAAABBBBCCCC')
'5A4B4C'
>>> rle_decompress('5A4B4C')
'AAAAABBBBCCCC'
```
阅读全文