今天早上看着电梯按钮,一个有趣的难题传给我。
您需要生成一个适合2x3网格的所有盲文图案列表。使用散列#
表示凹凸,使用连字符-
表示平坦区域。
预期输出样本:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
规则:
- 您的程序必须用至少一个字符或一行分隔每个模式。
- 图案可以以任何顺序生成。
- 不论盲文字母表实际使用什么样式,都应制作所有图案。完全空白的模式是可选的。
- 仅应生成唯一的凹凸图案。由于凸起的排列相同,因此以下图案被认为是等效的。在这些情况下,请使用最靠近左上角的图案(即,本示例中的第一个选项)。
#- -# -- --
#- -# #- -#
-- -- #- -#
奖励积分,如果你可以把它用于任何工作,X由Ÿ大小的网格。(编辑:在合理范围内。最多4x4足以用于概念验证。)
阅读Wiki文章后,看来有45种模式(包括空白)符合该难题的规则。
x
xy
网格,您将生成第一个2^(xy)
数字,并针对2^x - 1
或过滤掉那些掩码为0的数字(2^(xy+1) - 1)/(2^y - 1)
。