您会得到一个由.
和组成的六角形网格#
,如下所示:
. . . . . . . .
. . . . # . . .
. # . . . # . .
. . . # . . . .
. . . . . # . .
. . . . . . . .
你的任务是填补的整个轴线对齐边框#
进一步#
:
. . . . . . . .
. . # # # # . .
. # # # # # . .
. . # # # # # .
. . # # # # . .
. . . . . . . .
与轴对齐的边界框是最小的凸六边形形状,其中包含所有#
。请注意,在六角形网格的情况下,需要考虑三个轴(W / E,SW / NE,NW / SE):
这是另一个示例,显示在某些情况下,一个或多个边仅包含一个边#
:
. . . . . . . . . . . . . . . .
. # . . . . . . . # # # # . . .
. . . . . # . . . . # # # # . .
. . # . . . . . . . # # # . . .
. . . . . . . . . . . . . . . .
您可以将它们视为具有退化边的六边形,也可以像上面我所做的那样在它们周围绘制边界框,在这种情况下,它们仍然是六边形:
太难?尝试第一部分!
规则
您可以使用任何两个不同的非空格可打印ASCII字符(0x21至0x7E,包括0x21至0x7E)来代替#
和.
。我会继续提到他们作为#
和.
对规范虽然剩下的时间。
输入和输出可以是单个换行符分隔的字符串,也可以是字符串列表(每行一个),但是格式必须一致。
您可以假定输入至少包含一行,#
并且所有行的长度均相同。请注意,有两种不同的“种类”的行(以空格或非空格开头)-您可能无法假设输入始终以相同的类型开头。您可以假设边界框始终适合您所获得的网格。
您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。
您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。
这是代码高尔夫球,因此以字节为单位的最短有效答案为准。
测试用例
每个测试用例具有彼此相邻的输入和输出。
# #
. . . .
# . # # # #
. . . .
. # . #
. . . . # .
# . # .
# . # .
. . . . # .
. # . #
# . # .
# . . # # .
. # # #
. # # #
# . . # # #
. # # #
. . # . # #
. . # #
# . . # # .
# . . # # .
. . # #
. . # . # #
. . . . . . . . . . . . . . . .
. . # . # . . . . . # # # . . .
. . . . . . . . . . . # # . . .
. . . # . . . . . . . # . . . .
. . . . . . . . . . . . . . . .
. . # . . . # . . . # # # # # .
. . . . . . . . . . . # # # # .
. . . # . . . . . . . # # # . .
. . . . . . . . . . . . . . . .
. # . . . . . . . # # # # . . .
. . . . . # . . . . # # # # . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. # . . . . . . . # # # # . . .
. . . . . # . . . . # # # # . .
. . # . . . . . . . # # # . . .
. . . . # . . . . . # # # # . .
. # . . . # . . . # # # # # . .
. . . # . . . . . . # # # # # .
. . . . . # . . . . # # # # . .