今天是普im节(Purim),一种习俗是散发出带有馅料的三角形饼干hamantaschen(单数:hamantasch)。另一种习惯是大量饮酒。
我不是最完美的面包师。。。我有很多不规则尺寸的hamantaschen可供分发,还有很多朋友可以给他们!如果我给您发送了一张我的饼干的照片,您能告诉我我有多少个大小和馅料吗?但是因为是普im节,而且我太醉了,无法阅读太多代码,所以它必须尽可能地小。
定义
尺寸
hamantasch可以是任何大小。最小的hamantasch是1号,看起来像这样:
/\ --
-- \/
有时,多个hamantaschen可能会重叠。以下形状算作两个hamantaschen(一个尺寸1,一个尺寸2):
/\
/\ \
----
一些hamantaschen 充满了。这将通过用字符填充内部的所有空白来表示。请注意,尺寸1的hamantaschen不能填充。
我们将根据馅料和大小来命名 hamantaschen。让我们使用格式<filling> <size>
,如果没有填充,- <size>
可以使用空格代替-
,但markdown并不是这样)。
这是一个. 2
,一个. 4
和一个- 3
:
/\
/./\
---- /./ \
\../ /./ \
\/ --------
这些是@ 3
,a . 2
和a - 4
:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
这里有些困难。看看& 2
由于重叠的倾斜而导致的填充量比您预期的要少- 3
吗?它具有a - 1
,& 2
a - 3
和a & 4
:
--------
\ \/&/
\ /\/
\/&/
\/
输入值
您将获得一个文本文件或hamantaschen的单个字符串(可选的尾随换行符和可选的尾随空白填充为偶数)。
限度
- 您可以期望该字符串是有效的 -也就是说,每个非空白字符都构成了美味的甜蜜hamantasch(为什么要浪费面团?)。
- 您也可以期望它被正确填写或不-也就是每个hamantasch将完全充满一致的ASCII字符-用于填充ASCII 32,或填充(不包括任何32..127
/
,\
和-
)。 - 这些hamantaschen 不在 3空间中堆叠。全部
/
并且\
将可见。所有-
未受阻/
且\
将可见的东西。填充到最后。 - 所有hamantaschen将至少具有其水平线(向上舍入)的一半。
- 任何连续的填充块只会填充围绕它的最小的hamantasch。
输出量
返回符合以上条件的所有hamantaschen的“名称”列表。输出可以是您想要的任何形式(字符串,哈希,stdout等)。
测试用例
测试用例#1
输入#1:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
/\
/**\
/*/\*\
/*/..\*\
--------
输出#1:
. 2
. 2
- 4
@ 3
* 4
测试用例#2
输入#2:
/\----
/\/\*\/
/ /\d\/
------
输出#2:
- 3
- 2
d 2
- 1
* 2
- 1
测试#3
输入#3:
----
\/\/
/\/\ /\
---- /::\
----
输出#3:
- 1
- 1
- 2
- 1
- 1
- 2
: 2
测试#4
输入#4:
/\/\
/ /\$\
-/--/\\
--/--\
/xxx/\
/xxx/##\
---/----\
/ \
--------
输出#4:
$ 2
x 4
- 3
- 2
- 4
- 1
- 1
# 2
无效的测试案例#5
输入:
/\
\/
输出:
您不需要处理。
/
和\
,-
并将始终胜过填充。
(1,0)
都被禁用+1
。不过,我知道您的意思,但我不同意。有什么指示是(2, 2)
a的顶部中心,- 2
而不仅仅是两个上- 1
s 的顶部和左侧?我看不到。同样的逻辑也适用于(3, 2)
。除非您想添加一条规则以假设最大可能的危险...