ASCII框如下所示:
++ +---+ +------+ +---+ +---+
++ | | | | | | | |
| | | | | | | |
+-+ | | | | | | | |
+-+ | | | | | | +---+
+---+ | | | |
+--+ | | | | ++
| | | | | | ||
| | +------+ | | ||
+--+ | | ||
+---+ ||
||
+-----+ ||
+------------+ | | ++
| | | |
| | | |
+------------+ +-----+
以下是一些内含相同ASCII框的示例:
++ +- -+ +- -+ +- -+ +- -+
++ | - | | - - | | - | | - |
| | | -- | | | | |
+-+ | | | | " | - |
+-+ | - | || | | +- -+
+- -+ | | | |
+--+ | -- | | | ++
| | | - - | " ||
| | +- -+ | | ||
+--+ | - | | |
+- -+ | |
-- ||
- - +- -+ ||
+- - - -+ | - - | ++
| -- -- | | = |
| -- -- | | - - |
+- - - -+ +- -+
- -
--
这是易于复制格式的所有这些测试用例框的链接。顺序是所有输入,然后是相同顺序的所有输出。
您的目标是将ASCII框作为输入,并返回内嵌的框。内爆的规则是:
- “ +”永远不变;“-”或“ |”都不 直接邻近“ +”
- 从角落开始,“-”和“ |” 向内移动一个空间,比距离拐角处的相同角色多一个空间。如果是“-”和“ |” 永远不会移动到同一地点,也不会移动。
- 如果“-”和“-”移动到同一位置,请在该位置放置“ =”。如果是“ |” 和“ |” 移动到相同的位置,在该位置放置一个“。”,它们被视为同一位置中两个相反方向的字符。
- 两个“-”或两个“ |” 可以彼此移动,如左下角的示例所示。
- 如果盒子足够薄,它将以相同的方式开始向外扩展,始终从其一部分开始的一侧移开。
- 结果应该在x和y方向上横跨中心线对称(忽略换行符);这包括空格,因此结果可能需要用空格填充才能满足要求。
规则详细信息:
- 这是代码高尔夫球,因此以字节为单位的最短程序获胜。
- 有标准漏洞。
- 您可以假设每行以换行符结尾。
- 输入字符串中的唯一字符将是“ +”,“-”,“ |”,“”和“ \ n”(换行符),并且输出字符串应遵循相同的规则,并加上“ =“和“作为可能的字符。
- 您可以选择在最后一行的末尾有一个结尾的换行符。
- 您需要处理的最小ASCII框是左上角的示例。每个ASCII框的拐角处将恰好有4个“ +”。
- 您将需要处理大小
m x n
为任何整数的框,以m,n
使2<=m,n<256
(最大可能的字符串大小为255*(255+1)
) - 您可以假设您将始终得到一个有效的ASCII框作为输入。
我认为您忘记了在“规则详细信息”数字4的输出中添加“作为可能的字符。编辑:我们可以假设输入没有空行吗?
—
Theraot
1x6的示例很时髦,为什么它会向外爆炸?我认为
—
Magic Octopus Urn
||
该示例中的其中一个必须是a "
或其他内容……
@carusocomputing相同左下方例如,壁通过彼此移动(这样的框体积为负) -规则4和5
—
里茨
@Lyth还应该有空
—
Magic Octopus Urn
"
吗?我猜"
唯一出现在3英寸或更大的宽度上?
@carusocomputing考虑一下:
—
HyperNeutrino
"
去哪里?在左边还是右边?不能两者兼有,但也不能兼有,因为结果是对称的。