介绍
在贝克的地图是一个重要的动力系统表现出混沌行为。它是从单位平方到其直观定义的函数,如下所示。
- 将正方形垂直切成两半,形成两个大小为的矩形
0.5×1
。 - 将右半部分堆叠在左上方,形成一个矩形大小
0.5×2
- 将矩形压缩回
1×1
正方形。
在此挑战中,您将实现此转换的离散版本。
输入输出
您的输入是2D数组,可打印的ASCII字符和2m×2n
某些字符的空白空间m, n > 0
。您的输出是使用数组按以下方式获得的类似6×4
数组
ABCDEF
GHIJKL
MNOPQR
STUVWX
举个例子。首先,将数组的右半部分堆叠在左半部分的顶部:
DEF
JKL
PQR
VWX
ABC
GHI
MNO
STU
然后,将这些列拆分为成对的字符,并分别将每对字符顺时针旋转90度,将高矩形“压缩”回原始形状:
JDKELF
VPWQXR
GAHBIC
SMTNUO
这是上述阵列的正确输出。
规则
输入和输出格式灵活。您可以使用换行符分隔的字符串,字符串列表或2D字符数组。但是,输入和输出必须具有完全相同的格式:您必须能够对任何有效输入进行任意次数的提交迭代。
您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。
测试用例
Input:
12
34
Output:
42
31
Input:
Hell
! o
d -
lroW
Output:
lol
o W-
!H e
ldr
Input:
ABCDEF
GHIJKL
MNOPQR
STUVWX
Output:
JDKELF
VPWQXR
GAHBIC
SMTNUO
Input:
*___ ___ o
o|__) |__) *
*| | o
o __ __ *
*| | _ o
o|__ |__| *
Output:
|_____) *o
|_ _ *o
||_ __| *o
o*|_____)
o* |_ _
o*||_ _