星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。
真实故事1:前几天,当我有想法去访问我通常在PC上用于测试JavaScript 的页面时,我正在平板电脑上玩耍。页面加载后,我输入了以下简单程序:
alert("Hello!")
然后,我继续按Execute按钮,当它告诉我输入的代码无效时,我感到很惊讶。我再次查看了文本框,并看到了以下内容:
alllelelerlerlertlert("Heeelelellellelloello!")
哇??? 那不是我输入的!那这里怎么了 为了弄清楚,我输入了两个简单的行:
abcdefg
0123456
结果是:
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
0112123123412345123456
到目前为止,我仍然不知道字母发生了什么,但是数字似乎更简单,所以我仔细看了一下。事实证明,该网页只是输入第一个字符,然后在每次按下新的字符时重复字符串中的所有其余字符:
0112123123412345123456
0
1
12
123
1234
12345
123456
但是字母部分呢?经过一分钟的思考,我意识到它是相同的,但是没有重复每个小节一次,而是重复了两次:
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
a
bb
bcbc
bcdbcd
bcdebcde
bcdefbcdef
bcdefgbcdefg
两种作品的结合以及这些技术的结合:
abc123z
abbbcbcbc1bc12bc123bc123zbc123z
a
bb
bcbc
bc1
bc12
bc123
bc123zbc123z
无论是什么故障引起的,这似乎都在标点和空格处重置,因此abc def
变为abbbcbc deeefef
。
在这一点上,我全神贯注于将其弄清楚并将其变成一个有趣的挑战,以至于我忘记了为什么我一直在那儿。(不过,我确实弄清楚了如何正常键入:在每个字符后按空格键。这很繁琐,但是您必须执行操作。)
挑战
挑战的目标是编写一个程序或函数,该程序或函数接受要处理的文本,进行上面列出的更改,然后输出/返回结果。
细节
- 输入将仅包含可打印的ASCII,并且没有制表符或换行符。
测试用例
输入:(每行一个)
Mess up text
This is some longer text.
CAPS LOCK && "Punc-tua"+'tion'
under_score_style
CaPs wItHIn loWERs
1337 numb3r5
abcdefghij 0123456789
Code-golf is the best!
输出:
Meeesesessess upp teeexexextext
Thhhihihishis iss sooomomomeome looononongongongeongeongeronger teeexexextext.
CAAAPAPAPSAPS LOOOCOCOCKOCK && "Puuunununcunc-tuuuaua"+'tiiioioionion'
unnndndndendendernder_scccococorcorcorecore_stttytytyltyltyletyle
CaaaPaPaPsaPs wIIItItItHItHItHIItHIItHInItHIn loooWoWoWEoWEoWERoWERoWERsoWERs
1333337 nuuumumumbumbumb3umb3rumb3rumb3r5
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefgbcdefghbcdefghbcdefghibcdefghibcdefghijbcdefghij 0112123123412345123456123456712345678123456789
Cooodododeode-gooolololfolf iss thhhehe beeesesestest!
计分
这是代码高尔夫球,因此以字节为单位的最短有效代码获胜。Tiebreaker提交的提交首先达到其最终字节数。获胜者将在11月2日下周一chosen选。祝您好运!
编辑:赢家是... @MartinBüttner使用视网膜提供了令人难以置信的43字节解决方案!
1是的,这个故事是完全正确的,如果您需要更多说明,请参阅脚注1。
' '.join(x[0]+''.join(2*x[1:i]for i in range(1,len(x)+1)) for x in raw_input().split())