【发布时间】:2020-04-28 01:59:21
【问题描述】:
由于我因病毒被困在家里无事可做,我决定开始学习 Prolog,我一直在解决学习 Prolog 和 99 个 Prolog 问题中的不同问题。
我目前遇到了一个运行长度编码问题,希望能提供有关该问题的任何帮助或指导。
这是我坚持的问题:
编写一个谓词 encode/2 ,它将未压缩列表作为第一个参数并返回压缩列表,如第二个参数所示。例如:
encode(['a','b','b','c','c','c','d','d'],X) should yield X = [ (a, 1), (b, 2), (c, 3), (d, 2)] .
encode(['a','p','p','l','e'],X) should yield X = [ (a, 1), (p, 2), (l, 1), (e, 1)] .```
And then to decode it:
Write a predicate decode/2 that takes the compressed list as a first parameter and returns the uncompressed list as shown as the second parameter. For example:
```decode([],X) should yield X = [].
decode([(a,1), (b,2), (c,3), (d,2)],X) should yield X = ['a','b','b','c','c','c','d','d'] .
decode([(a,1), (p,2), (l,1), (e,1)],X) should yield X = ['a','p','p','l','e'].```
【问题讨论】:
-
感兴趣的:RosettaCode Run Length Encoding
-
是的,您重述了这个问题,但您的困难是什么? 在哪里你卡住了?你写过什么吗?请将其包含在您的问题中,以便我们尝试帮助您摆脱困境。你不知道从哪里开始?究竟是什么问题?
标签: prolog