编写两个程序:
对于那些不知道铁路栅栏密码是什么的人来说,这基本上是一种书写纯文本的方法,它以一种螺旋式的方式创造了线性模式。例-当"FOOBARBAZQUX“钢轨-使用3键的围栏。
F . . . A . . . Z . . . .
O . B . R . A . Q . X
O . . . B . . . U阅读上述螺旋逐行,密码文本成为"FAZOBRAQXOBU“。
在- 铁路栅栏密码-维基百科阅读更多信息。
欢迎使用任何语言的代码。
最短答案(以字节为单位)获胜。
发布于 2018-07-17 23:14:29
编码:
lambda t,k:''.join(t[i+j]for r in R(k)for i in R(k-1,len(t)+k,2*k-2)for j in[r-k+1,k+~r][:1+(k-1>r>0)]if i+j<len(t))
R=range解码:
lambda t,k:''.join(t[dict((b,a)for a,b in enumerate(i+j for r in R(k)for i in R(k-1,len(t)+k,2*k-2)for j in[r-k+1,k+~r][:1+(k-1>r>0)]if i+j<len(t)))[m]]for m in R(len(t)))
R=rangehttps://codegolf.stackexchange.com/questions/10544
复制相似问题