挑战
编写一个接受一行输入的函数或程序,对其字符执行非常特定且奇怪的随机播放,然后输出结果。
可以使用以下算法描述所需的改组:
- 使用基于1的索引标记输入中的每个字符。
- 将字符编号1写入输出。
- 从字符编号2开始,将每个其他字符依次写入输出中,字符2本身除外。换句话说,将字符4、6、8、10等写为输出。
- 从尚未写入输出的下一个字符编号n开始,将第n个字符写入输出中,不包括字符n本身,并排除您可能已经写入输出中的任何其他字符(通过数字标签)。
- 只要继续向输出添加新字符,就重复步骤4。
- 依次写入其余字符以输出。
例
- 标记字符。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 奥古多亚克的美容院
2.写入第一个字符以输出:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27OLDDOCYAK'SBEAUTYCORNER O
3.写入其他所有以2开头的字符,不包括2。
12 3456789101112131415161718192021222324252627öLDdöÇý甲ķ'小号乙é甲ùŤýÇöřÑËř O OA'EUYCRE
4.下一个尚未写入的字符是字符号3;以3开头的每个第三个字符,但不包括3本身以及已经写入的任何字符,都应写入。
12 3456789101112131415161718192021222324252627öLDdöÇý甲ķ'小号乙é甲ùŤýÇöřÑËřOOA 'EUYCREYB R
5.使用下一个字符(字符5)重复步骤4。
4.下一个尚未写入的字符是字符号5;每5个字符以5开头,但不包括5本身以及已写入的任何字符。(这仅相当于字符25)。
12 3456789101112131415161718192021222324252627OLDdöÇý甲ķ'小号乙é甲ùŤýÇöřÑËřOOA 'EUYCREYB R N
5.下一个字符是7;但是14、21已经被写入,因此,如果我们重复步骤4,将不再输出任何字符。因此,我们完成了5。
6.依次写出其余字符。
12 3456789101112131415161718192021222324252627öLD döÇý甲ķ'小号乙é甲ùŤýÇöřÑËřOOA 'EUYCREYB RN LDDCKSATO
规则
输入和输出可以通过标准输入/标准输出,字符串或字符数组进行。
如果读入作为标准输入,您可以在方便时假设有尾随换行符,或者整个输入都包含该行。换行符不参与改组。
同样,在您方便的时候,您的输出可能带有尾随换行符,也可能没有。
不允许出现标准漏洞。
这是一场代码高尔夫比赛。以字节为单位的最小代码获胜。
测试用例
123456789ABCDEF -> 1468ACE9F2357BD
OLD DOC YAK'S BEAUTY CORNER -> O O A' EUYCREYB RNLDDCKSATO
Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator.
->
Bebxsuea20h oet ovnetlpoesice htuei-adsgaln httecle satal eehn prtre 0ncce ha nng aiuapootnt ihyon atallu o s 6z oi ehwstsnbilt lr clee.