首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >磁带测量串

磁带测量串
EN

Code Golf用户
提问于 2017-01-14 15:23:55
回答 3查看 479关注 0票数 15

动机:有时候你需要知道自己在哪里。您希望能够查看字符串的任何部分,并尽可能准确地知道您所在的位置。

挑战:编写一个程序输出给定长度的磁带测量字符串。一个磁带测量字符串的自我描述它的长度-尽可能多地沿着它自己的长度。

规则

  1. 对于磁带测量字符串的总长度,程序必须采用一个正整数参数。
  2. 对于输出中的每一个连续的数字字符串,这些数字必须准确地报告输出的长度,其中包括!。
    1. 长度是从字符串的开始到每个数字的末尾测量的。

  3. 字符串中应包含尽可能多的长度数字。
  4. 避免含糊不清。分隔符/分隔符可以用来避免数字被并列,即12表示12,而不是1,2。
  5. 字符串必须始终准确地报告其末尾的总长度,而不需要尾随分隔符。
  6. 您可能需要多个分隔符来保持长度的精确性,例如,下面是一个长度为4的磁带测量字符串示例:1--4

非规定性/详尽的例子:

  • 长度为1:1的磁带测量字符串
  • 长度为2:-2的磁带测量串
  • 长度为3:1-3的磁带测量串
  • 长度为4的磁带测量字符串:1--4-2-4 (两者都尽可能经常报告长度,即两次,并以正确的总长度结束)
  • 长度为10:1-3-5-7-10的磁带测量字符串
  • 长度为11的磁带测量字符串:1-3-5-7--111-3-5--8-111-3--6-8-111--4-6-8-11-2-4-6-8-11 (都有尽可能多的长度编号,并以总字符串长度结束)
EN

回答 3

Code Golf用户

发布于 2017-01-14 20:03:08

JavaScript (ES6),49字节

代码语言:javascript
复制
f=(n,s='',t=''+-n)=>n>1?f(n-t.length,t+s):n?n+s:s
代码语言:javascript
复制
<input type=number oninput=o.value=f(this.value)><br><textarea id=o></textarea>
票数 3
EN

Code Golf用户

发布于 2017-01-14 22:51:00

Pyth,23字节

代码语言:javascript
复制
L?<b2*"1"b+y-bl+""_bs_b

公然窃取了小麦巫师答案中的递归解决方案。而且,我认为这球打得不够好。

在这里试试!

票数 2
EN

Code Golf用户

发布于 2021-05-25 04:14:58

C (gcc),68字节

代码语言:javascript
复制
f(n){int*j;n<2?j="1"+!n:printf(f(n-asprintf(&j,"%d",-n)));return j;}

在网上试试!

借用@小麦向导的递归解决方案。

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

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

复制
相关文章

相似问题

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