这是我对ppcg的第一个挑战!
输入项
由两个不同的ASCII字符组成的字符串。例如
ABAABBAAAAAABBAAABAABBAABA
挑战
任务是按照以下规则解码此字符串:
- 跳过前两个字符
- 将字符串的其余部分分成8个字符的组
- 在每个组中,
0
如果该字符与原始字符串的第一个字符相同,则替换为每个字符,1
否则为 - 现在每个组代表一个字节。将每个组从字节字符代码转换为字符
- 连接所有字符
例
让我们解码上面的字符串。
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
请注意,这A
是原始字符串中的第一个字符,B
第二个字符。因此,替换每个A
与0
每个B
有1
。现在我们获得:
00110000 00110001 00110010
这是[0x30, 0x31, 0x32]
二进制的。这些值["0", "1", "2"]
分别表示字符,因此最终输出应为012
。
计分
当然,这是code-golf,这意味着使您的代码尽可能短。分数以字节为单位。
约束和IO格式
适用标准规则。以下是一些其他规则:
- 您可以假设输入有效
- 输入字符串完全由两个不同的字符组成
- 前两个字符不同
- 输入字符串的最小长度为2个字符
- 长度将始终为2模8
- 您可以假设该字符串将始终仅由可打印的ASCII字符组成
- 在输入和在解码的字符串中
- 输出中允许前导和尾随空格(所有与匹配的内容
/\s*/
)