首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制游程编码

问二进制游程编码
EN

Code Golf用户
提问于 2015-12-23 21:48:49
回答 3查看 927关注 0票数 3

概述

运行长度编码-在多个连续数据元素中出现相同数据值的序列存储为单个数据值和计数。

使用游程编码时:

代码语言:javascript
复制
Input:  ABBBCCACB
Output: 1A3B2C1A1C1B

此示例的输出大于输入。

相反,可以通过删除结果中的数据值来简化二进制输入,

代码语言:javascript
复制
Input:  10001110101
Output: 1331111

它要小得多。这是因为,从逻辑上讲,如果有一个“下一个子集”,那么它必须具有与当前子集不同的数据值。因为只有两个可能的值(1和0),所以您总是知道"next“数据值子集。

挑战

实现上面演示的二进制游程编码.

  • 通过STDIN或适当的替代方案进行输入。
  • 输出到STDOUT或合适的替代品。

示例

代码语言:javascript
复制
In:  101011101011000011
Out: 11113111242

In:  01001010001
Out: 11211131

In:  000000000
Out: 9

您可能会假设没有一个子集会超过9个字符(不会有10个相邻的零)。

EN

回答 3

Code Golf用户

回答已采纳

发布于 2015-12-24 22:12:27

Pyth -5字节

代码语言:javascript
复制
hMrz8

测试套房。

票数 2
EN

Code Golf用户

发布于 2015-12-24 23:31:51

卡住,5字节

代码语言:javascript
复制
soT]y

以二进制字符串作为输入,并输出数组。

解释

代码语言:javascript
复制
soT]y

s       get input string
 o      run-level encoding
  T     zip
   ]    flatten
    y   pops the data values off
票数 2
EN

Code Golf用户

发布于 2015-12-24 22:10:50

CJam,6字节

代码语言:javascript
复制
le`s2%

在这里试试。

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/67551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档