游程编码

实践练习C++17

游程编码是一种简单的无损压缩方法:连续出现的相同字符可以用重复次数和一个字符代替。解码后应完整还原原始内容。

任务说明

实现游程编码与解码。

游程编码 RLE 是一种简单压缩方式,把连续相同元素替换为出现次数和一个数据值。

例如,原本 53 个字符可以仅用 13 个字符表示。

"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"  ->  "12WB12W3B24WB"

可以从压缩结果完整还原原数据,因此它属于无损压缩。

"AABCCCDEEEE"  ->  "2AB3CD4E"  ->  "AABCCCDEEEE"

为简化问题,未编码字符串只包含大小写英文字母和空白,不包含数字。因此解码输入中的数字始终表示其后字符的重复次数。