介绍
在此挑战中,将为您提供矩形长方体(3D框)的网(展开的表面)的ASCII表示作为输入。格式是这样的:
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
长方体的每个面都是#
s 的矩形,由- +-|
字符包围。网的外部充满.
s。网络将始终具有相同的方向:有一个中间面被其四个相邻面围绕着,中间面的对应部分位于输入的右边界。输入用.
s 填充为矩形,并且不会包含.
s的额外行或列。
任务
您的任务是将上述图表作为输入,并计算它表示的长方体的体积,这只是其长,宽和深的乘积。您可以将输入作为换行符分隔的字符串或字符串数组。
每个边的长度是- +
两端字符之间的距离。例如,水平边缘的+--+
长度为3,垂直边缘的长度为3
+
|
|
|
+
的长度为4。边的最小长度为1。上面的示例长方体的体积为2 * 3 * 4 = 24。
规则和计分
您可以编写完整的程序或函数,最低的字节数为准。
测试用例
.++..
+++++
+++++
.++..
1
...++....
...||....
...||....
+--++--++
+--++--++
...||....
...||....
...++....
3
..+-+....
..|#|....
+-+-+-+-+
|#|#|#|#|
|#|#|#|#|
+-+-+-+-+
..|#|....
..+-+....
12
.+---+.....
++---++---+
||###||###|
||###||###|
||###||###|
++---++---+
.+---+.....
16
....++.....
....||.....
....||.....
....||.....
+---++---++
|###||###||
|###||###||
|###||###||
+---++---++
....||.....
....||.....
....||.....
....++.....
16
...+--+......
...|##|......
...|##|......
+--+--+--+--+
|##|##|##|##|
+--+--+--+--+
...|##|......
...|##|......
...+--+......
18
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
24
....+-----+..........
....|#####|..........
....|#####|..........
....|#####|..........
+---+-----+---+-----+
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
+---+-----+---+-----+
....|#####|..........
....|#####|..........
....|#####|..........
....+-----+..........
120