背景
原子弹在栅栏工厂附近爆炸了!由于栅栏对于我们的文明生存至关重要,因此我们必须营救尽可能多的人。我们正在派出抗辐射的机器人搜索该区域,对它们的人工视觉进行编程是您的任务。
输入值
输入的字符是一个矩形网格|-#
,代表两种栅栏部分和瓦砾,以换行符分隔的字符串形式给出。爆炸造成的伤势严重,有些甚至被高温融化了。我们将候选栅栏定义为开始于此并且结束于它们之间|
并且具有一个或多个-
s 的水平模式(例如|-|
或|---|
不是||
),或者是开始于并且结束于其之间-
具有一个或多个|
s 的垂直模式。水平候选栅栏旋转90度)。一个实际的栅栏柱是候选栅栏柱不与另一位候选人栅栏柱共享任何部件。
输出量
您的输出是输入网格中实际栅栏的数量。
例
考虑输入网格
|#|-|#|##
#||--|||#
###|#|--#
###-||--|
-#-|#-|#-
#---#-#-|
#-#-|#--|
此网格中有5个候选栅栏,但其中只有2个是实际栅栏(以粗体显示)。因此正确的输出是2
。
规则
您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。
其他测试用例
输入:
##--
||##
-#|-
|#|#
输出:0
(0个候选栅栏)
输入:
-##|-##--
#|#-|#||-
--|-#|#||
##||||-##
||#|--|-|
-#|-#--|#
|####|#-#
输出:0
(5个候选栅栏)
输入:
#|--|---|-|#
####|##--||-
-|-##||#|---
-#|#-|-#-|||
#|-##--###|-
---#-||-#-##
#|---|###|-#
-|---#-#|#|#
|#--|####-|-
输出:4
(8条候选栅栏)
输入:
-|-||---##|#
---|######-#
####-##|#--|
|||##|#-||||
####-#-||-#|
---#--|#-#--
-|#-####-##-
#||-|-|-###|
|-##||-||-#-
输出:5
(7个候选栅栏)
输入:
|#-|#|#-###|#-#
----#####|#----
|#--#-##-#|##-|
|#-|#-|--##||--
||#-#---##|||##
#|#-|||-#-#--||
--#|-||#|--|#|#
-#-|###||-#--#|
-#||-|#-##||##|
|--|-|||-##|-#|
输出:4
(9个候选栅栏)
输入:
||-|-|-##-#-#-|#--#-
-##|-#|-#-##-|#|--|-
||#---###||-|#|##|-#
#||-#-#-|---|#||#|##
-#-###-##-|-#-|-#||#
##-#--#||-----||-|##
-|--#-#-#|---#-#|#-#
###|-|#-#|-|###|#-|#
#||#-#|--|-||#------
||##|-||#-|--#|#-#-#
|#-|-#-|-|--##-#|||#
-|#--#||##---##|-##-
#|-|-|-||-||#-#-|##-
|-#|##|-|#|#|--||#--
输出:9
(30个候选栅栏)
@BMac应该是省略号,表示省略了一些连字符。我同意这不是最清楚的表示法。让我想到一些不那么模棱两可的东西。
—
Zgarb 2015年
如果我们编写一个函数,例如它可以将一个2D数组参数作为输入。
—
blutorange
[[-,|,-],[#,#,-],[-,-,|]]
?
@blutorange不,在此挑战中,它必须是单个字符串。
—
Zgarb 2015年
|--...--|
模式通配符中的句点是吗?这是否意味着水平栅栏必须至少包含5个连字符?我对表示有点困惑。