[行程编码](https://en.wikipedia.org/w/index.php?title=Run-length_encoding)(RLE)是一种非常简单的数据压缩形式,其中数据运行(即,其中在许多连续数据元素中出现相同数据值的序列被存储为单个数据值和计数,而不是原始运行。 <举>维基百科举>
##任务
您的任务是编写这样的行程编码。对于给定的字符串,返回对(或数组)的列表(或数组)
[
(i 1 sub>,s 1 sub>),
(i 2 sub>,s 2 sub>),
…
(i n sub>,s n sub>)
通过复制字符s x sub> i x sub>次并且连接所有这些字符串,可以重建原始字符串。你的游程编码应该是最小的,即。对于所有i,值s i sub>和s i + 1 sub>应该不同。
## 例子
正如文章所述,RLE是一种非常简单的数据压缩形式。它只适用于数据运行,如下例所示:
runLengthEncoding“你好世界!”
`shouldBe` [(1,'h'),(1,'e'),(2,'l'),(1,'o'),(1,''),(1,'w') ,(1,'o'),(1,'r'),(1,'l'),(1,'d'),(1,'!')]
runLengthEncoding“你好世界!”
#=> [[1,'h'],[1,'e'],[2,'l'],[1,'o'],[1,''],[1,'w'] ,[1,'o'],[1,'r'],[1,'l'],[1,'d'],[1,'!']]
runLengthEncoding(“hello world!”)
// => [[1,'h'],[1,'e'],[2,'l'],[1,'o'],[1,''],[1,'w' ],[1,'o'],[1,'r'],[1,'l'],[1,'d'],[1,'!']]
run_length_encoding(“hello world!”)
// => [[1,'h'],[1,'e'],[2,'l'],[1,'o'],[1,''],[1,'w' ],[1,'o'],[1,'r'],[1,'l'],[1,'d'],[1,'!']]
rle(“你好世界!”)
#=> [[1,'h'],[1,'e'],[2,'l'],[1,'o'],[1,''],[1,'w'] ,[1,'o'],[1,'r'],[1,'l'],[1,'d'],[1,'!']]
如果在许多连续数据元素中出现相同的数据值,则非常有效:
runLengthEncoding“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb”
`shouldBe` [(34,'a'),(3,'b')]
runLengthEncoding“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb”
#=> [[34,'a'],[3,'b']]
游程编码( “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb”)
// => [[34,'a'],[3,'b']]
run_length_encoding( “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb”)
#=> [[34,'a'],[3,'b']]
RLE( “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbb”)
#=> [[34,'a'],[3,'b']]
点击查看答案
Python基础练习题:杂乱无章的页面列表【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
Python基础练习题:数值回文#1【难度:1级】–景越Python编程实例训练营,Python自学,Python进阶必备良品
Python基础练习题:几何基础:2D中圆之间的距离【难度:1级】–景越Python编程实例训练营,Python自学,Python进阶必备良品
Python高级练习题:懒惰的中继器【难度:3级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
单词搜索网格【难度:3级】–景越Python编程训练之挑战1000道Python面试题(含答案)
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/