您是否曾经看过3D形状,并认为我们有2个许多维度。因此,让我们将3D变成1D!(看看我在那里做了什么?)
任务
给定多维数据集的2D表示形式(下面的布局),根据指针将其展平为单个字符串。
多维数据集
这是立方体的布局,其中无操作(,
)和指针位于角(<>v^/
)。导航指针(NP)在显示的位置启动程序。
| NP begins here, moving right.
V
>,,,,,,,,,,,,,,,,,,v
, ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
NP从开始一直继续向右移动直到遇到一个弯道。每个角都有一个默认方向,除非在该角处被指针覆盖,否则默认方向将使NP指向新方向。它们如上图所示。程序中的指针是v^<>/
(/
它的点向下或向上,由于布局的原因,两者之间永远不会有任何混淆)
NP到达¶
符号时停止移动(是的,我知道这是一个多字节字符,请处理)。除指针,no-op(,
)和¶
符号外,它将遍历的每个字符都添加到最终的输出字符串中。
输入项
输入将是多行字符串,该字符串与CUBE的布局匹配,并且非空白字符替换0x21
为0x7E
且至少为的字符所述EOF的一个实例。
您可以输入以下内容:
- 多行字符串
- 字符串列表,其中每一行都是列表中的新元素
- 二维字符串列表,其中每一行都细分为一个列表
输出量
立方体,扁平化成单个线串。
条件指针
NP具有布尔值,该布尔值用于以“条件”指针开头的内容 true
。
“条件”指针(?
)是一个指针,它将在每次使用之间true
和false
每次使用NP值时交替使用它。条件指针仅在3条轨迹(3点角)相交的角上使用时才会生效。如果该值是true
NP到达条件指针时的值,则NP会移动到CUBE图像中的默认方向,并且在定向后会切换NP值。因此,如果开启false
,则NP遵循非默认方向。
NP永远不会成为有条件的情况,默认方向是它刚来自的方向。想象一下,这是正面的左角,并且NP值当前为true
:
NP direction
/
,
,
,,,?
,
,
这将永远不会发生,因为默认方向会将其镜像回原来的样子。
如果条件指针位于3点角上:
- 它不会添加到最终字符串中
- NP值在定向之间
true
和false
之后进行切换。 - 如果NP值为
true
,则NP重定向到默认方向。否则,它将重定向到非默认方向。
如果在轨道或2点角上:
- 它被添加到最终字符串
- 值已切换
- IP 没有定向
需要注意的事情
如果指针在轨道上并且没有指向空格,则将NP定向到新轨道中,将下一个字符添加到最终字符串中,并将NP向右旋转90度。
abcd
>e
g f
/
NP direction
会变平
(...) gef (...)
不
(...) g>def (...)
甲/
指针不重定向NP在这种情况下,因为它可能重定向到一个空间,以便
f
e
> ab/d
会成为 ab/def
规则
- 立方体的宽度,高度和深度可能会改变
- 立方体的高度和深度将始终相同且为宽度的一半,因此宽度将始终为均匀。
- 宽度将在(包括)6到60之间。
¶
NP 始终可以到达EOF()。例如,在立方体中永远不会有这样的东西:<¶>
因为NP将永远无法到达立方体。- 由于不能在多维数据集的轨道中插入空格,因此最终的字符串中永远不应包含空格。
- 如果将指针放在轨道之一(而不是在角落)中,并且它将NP引导到空格中,则NP保持不变,并将字符添加到最终字符串中。
- 但是,如果指针将其保持在轨道上,则将引导NP并且不添加指针字符
- 由于no-ops(
,
)不会添加到最终字符串中,因此最终字符串中不应包含任何,
内容。 - 您可以假定输入正确。
- 这是一个代码高尔夫球,因此以字节为单位的最短代码胜出!
例子
Input
Output
-----
Input
Output
abcdef
¶ ,g
q,,,,, h
p ,i
onmlkj
abcdefghijklmnopq
-----
>,,,,,,,,,,,,,,,,,,v
¶ ,,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
/,,,,,,,,,,,,,,,,,,/ /
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
^,,,,,,,,,,,,,,,,,,<
nothing
-----
Mr/~gm,Vc!r,0cbmPC@Zg9jb)7=m^ppwN*Nuk){r
c ¶Z
J ; #
e j 8
] b "
# ` 4
h $ -
p n 2
L S P
B ; R
@ J D
E N <
O \ p
B y =
| 9 ;
T x [
6 o k
! L =
E K ~
>mjmz6,?A*Q)^.a:IpGP"^bK}DSXL)2F!BV|"m6/ T
a A 6
5 = p
1 i R
4 / ?
- Z (
1 " `
' 0 {
N p M
O * K
Z J $
" ( d
4 + o
f U g
i v b
U ~ L
U M h
g ^ D
2 (g
5]u*n<Ldn</9/XQyC444Va\m}W3Rf,rp"a@5cZB0
(Newlines added for readability)
Mr/~gmVc!r0cbmPC@Zg9jb)7=m^ppwN*Nuk){rZ#8"4-2PRD<p=;[k=~T
6pR?(`{MK$dogbLhDg0BZc5@a"prfR3W}m\aV444CyQX/9/ndLn*u]52g
UUif4"ZON'1-415amjmz6?A*Q)^.a:IpGP"^bK}DSXL)2F!BV|"m6KLox9
y\NJ;Sn$`bj;
-----
NEWYORKCITYBABY!
¶ ,,
, , ,
, , ,
, , ,
, , ,
, , ,
,,,,,,,,,,,,,,,, ,
, , ,
, , ,
, , ,
, , ,
, , ,
, ,,
,,,,,,,,,,,,,,,,
NEWYORKCITYBABY!
-----
/{Y!_(=-)s<e!D^<+<+1o30d>QOx9kfu?3X2I:8],t>Ye~,Y9/6;u@
] >Y
! 1 )
c 7 8
^ K &
f K 9
M } O
s _ ?
h N e
? u ,
g = s
> Q M
a 0 9
b c (
h { c
[ m *
I R %
K E >
u 5 n
W f ]
} | y
F E q
) < ;
X L S
F M |
u * Z
>XZpJ=L`+8ONRk?T7$qVr6-U^f14{>>ABEEP`Mjx&T[/&o*F=*qq{/ e
¶ < ^
+ P C
. x m
; ^ >
y 4 b
5 v `
Q B c
2 e r
a x I
3 1 Y
Q v `
w ; o
* S h
E b S
r 6 P
M ` l
% M A
- ` "
j \ s
} ~ J
$ h c
% p O
I Z Z
] N E
` 3<
x^}}SI"-a3[%7U5EV}"UM?Aov|E_yjrMt<HAQ@}QAABO&y//R0$\2p
(Newlines added for readability)
]!c^fMsh?g>abh[IKuW}F)XFuXZpJ=L`+8ONRk?T7$qVr6-U^f14{ABEE
P`Mjx&T[/&o*F=*qq{*ML<E|f5ERm{c0Q=uN_}KK71Y)8&9O?esM9(c*%
>n]yq;S|Ze^Cm>b`crIY`ohSPlA"sJcOZE3NZph~\`M`6bS;;Sb6`M`\~
hpZN3p2\$0R//y&OBAAQ}@QAHtMrjy_E|voA?MU"}VE5U7%[3a-"IS}}^
x`]I%$}j-%MrE*wQ3a2Q5y;.+
-----
%:biv+|?
¶ \+
T c ,
?{yX<//v "
i [ @
Q Tj
U8sUNl.?
%:biv+|+"@jT[[T.lNUs8UQi{yXXy{T
-----
FCf2hoYA)&*j
F ¶#
3 p (
& ~ w
; * t
39Hq{F'MmmO/ 9
5 \ D
- | }
8 c l
a 25
GKa"<0/7MG[?
FCf2hoYA)&*j#(wt9D}l5[GM7/0"aKGa8-53;&3FFCf2hoYA)&*j#(wt9D}l52c|\*~p
-----
#S^[WNk3;9v;e2\h!@CI#Il?
G g`
$ 2 \
V 9 S
m Y b
6 ) *
U ' V
[ g V
I 8 X
< T U
K ¶ C
?ozMt+xxxxutvQgkx&D9I/<v '
w K p
V y h
( R y
e P i
] ! x
Z / s
y w '
# X 4
c ~ W
Z E,
~IdXPYS.Lc49lC~vjULUBv.?
(Newlines added for readability)
#S^[WNk3;9v;e2\h!@CI#Il`\Sb*VVXUC'phyixs'4WE~Xw/!PRyKKyRP!/wX~E
.vBULUjv~Cl94cL.SYPXdI~Zc#yZ]e(VwozMt+xxxxutvQgkx&D9I//I9D&xkgQ
vtuxxxx+tMzoK<I[U6mV$G#S^[WNk3;9v;e2\h!@CI#Ilg29Y)'g8T