【发布时间】:2010-11-28 15:57:10
【问题描述】:
请按照我在下面给出的示例输入和输出,回答将任意明文转换为其相应密文的程序的最短源代码。使用最少的 CPU 时间或最少的内存可获得奖励积分*。
示例 1:
明文:敏捷的棕色狐狸跳过懒惰的狗。 Supercalifragilisticexpialidocious!
密文: eTh kiquc nobrw xfo smjup rvoe eth yalz .odg !uioiapeislgriarpSueclfaiitcxildcos
示例 2:
明文: 123 1234 12345 123456 1234567 12345678 123456789
密文: 312 4213 53124 642135 7531246 86421357 975312468
规则:
- 标点符号被定义为包含在最接近的单词中。
- 单词的中心定义为天花板((strlen(word)+1)/2)。
- 空白被忽略(或折叠)。
- 奇数字首先向右移动。连单词都先向左移动。
您可以将其视为向后读取每个其他字符(从单词末尾开始),然后向前读取其余字符。 Corporation => XoXpXrXtXoX => niaorCoprto.
感谢那些指出我的描述不一致的人。这让你们中的许多人走上了错误的道路,对此我深表歉意。规则 #4 应该把事情弄清楚。
*只有在 Jeff Atwood 决定这样做的情况下才会获得奖励积分。因为我没有和他核实过,所以机会很小。对不起。
【问题讨论】:
-
I/O,读/写变量、函数的独立代码?
-
“lazy”在密文示例中编码错误,应该是“zlay”,而不是“yalz”。
-
我的第一个解决方案也输出 zlay。与规范比较后,我想也许我只是误解了规范,但也许你是对的。
-
@Dav - 我认为他的版本正好相反:
quick => kiquc首先以k开头,然后是c最后,然后是i,以此类推,而over => rvoe以@ 开头首先是 987654326@,然后是e,最后是v,然后是倒数第二个o。因此,一致性。 -
我明白了。在这种情况下,问题陈述可能应该以不同的方式定义转换——即,它应该描述密文是如何生成的,而不是描述它是如何被阅读的(或者,根据每个单词的反向阅读来定义密文的阅读方式。 .).
标签: word puzzle code-golf encryption scramble