每个程序员都知道方括号[]{}()<>
真的很有趣。为了加剧这种乐趣,可以将一组交织在一起的括号转换成可爱而模糊的图表。
假设您有一个包含方括号的字符串,例如[{][<(]})>(())
。第一步是将琴弦顺时针旋转45度。(在Mathematica中,几乎可以使用来完成Rotate[ur_string,-pi/4]
)。这是第一步的结果:
[
{
]
[
<
(
]
}
)
>
(
(
)
)
接下来,在每个字符之间添加一个对角线空间。
[
{
]
[
<
(
]
}
)
>
(
(
)
)
接下来,从最左边的括号开始,并在其与犯罪伙伴之间画一个正方形。
+---+
| |
| { |
| |
+---+
[
<
(
]
}
)
>
(
(
)
)
在每对括号中重复此过程,+
如果需要,用s 覆盖以前的字符。
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| [ |
| |
| < |
| |
| ( |
| |
| ] |
| |
+-----------+
)
>
(
(
)
)
继续进行,直到一切变得美好而方形。
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| +-----+ |
| | | |
| | +---+-+---+
| | | | | |
| | | +-+-+-+ |
| | | | | | | |
| +-+-+-+ | | |
| | | | | |
+-----+-+---+ | |
| | | |
| +-----+ |
| |
+---------+
+-----+
| |
| +-+ |
| | | |
| +-+ |
| |
+-----+
输入项
输入内容应为单行的方括号,不要包含其他字符,每个方括号均是[]{}()<>
。每种类型的托槽都是单独平衡的,尽管不同类型的托槽可能会重叠(这使正方形看起来很有趣)。尾随换行符是可选的。
输出量
输出将是从括号字符串生成的互锁方形图案。尾随空格和尾随换行符是可选的,但不得有前导空格。
目标
这是代码高尔夫球,最少的字节获胜。
一个正方形在另一个内部。我将调整我的示例。编辑:完成。
—
PhiNotPi
[[]]
我们可以输出两个重叠的正方形,还是必须在另一个内部输出一个正方形?