用任何需要6位十六进制输入/参数的编程语言编写程序或函数。输入/参数可以是6个值或6个字符串。
您的程序应输出一个正好8个字符的矩形矩形块,该块仅包含提供的十六进制数和空格(+换行符)。矩形块是较小的块形状的组合,分别对应6个提供的值。
以下是2个演示样本输入和样本有效输出:
样本输入:
"464fa6" or [4, 6, 4, 15, 10, 6]
一个有效的解决方案输出:
44 66 ff
44 66 ff
66 ff
aa f
aaa ffff
aa ffff
aaa
6 44
66666 44
样本输入:
"35bf12"
一个有效的解决方案输出:
55555 22
bbbbbbbb
b b b
33
fffff 3
ff ff
ffffff 1
规则:
输出必须是矩形
输出可以是任何垂直高度,但必须恰好是8个字符宽
“内部块”(称为“块形状”)不能连接到任何其他块形状,这些块形状必须由水平,垂直和对角线宽度为1个字符的空白壁分隔。
空格墙不能平行于外边缘,输出边缘只能存在1个字符宽的墙边缘。在输出的最外面的矩形边缘的任何地方都不应存在任何链接的空间。
空格墙的宽度在任何时候都不得超过1个字符。
内部块的形状应与x字符的区域一致,其中x是提供的十六进制值,并且形状应由字符x组成,其中x是代表十六进制字符的字符。
内部块形状可以是任何形式,只要所有形状字符都垂直或水平连接即可,并且不会破坏空白墙的规则。
可以将6个块形状放置在输出矩形内的任何内部“顺序”中。
有效输入范围:每个形状1 ... 15(“ 1” ...“ f”)。程序的输入不应包含6个十六进制数字以外的任何其他信息,并且在将输入提供给您的程序/函数之前,不应以示例方式对输入进行排序。告诉我们您的解决方案使用哪种输入格式(输入中不能包含十六进制值以外的任何其他信息)。
内部块形状可以是空心的。孔应为空白字符,该字符算作空白墙,这意味着空心内部块形状的孔的宽度不能超过1个字符。
有效空心形状的三个示例:
aaa
a aaa
aaa
999
9 9
999
9
ffffff
f ff
ffffff
无效空心形状的一个示例:
ffffff
f f
f f
fffff
我假设不可能根据上述规则“解决”所有输入组合,因此,我列出了程序应能够“解决”的10个示例输入(所有这些输入组合都经过验证可解决):
1. 464fa6 (same as the first sample)
2. 35bf12 (second example input seen above)
3. 111126
4. ff7fff
5. 565656
6. abcdef
7. 1357bd
8. 8c6a42
9. ab7845
10. 349a67
您的程序应该能够在合理的时间内解决10个样本输入中的任何一个。在标准台式计算机上,将合理的时间转换为1小时以内。像这样说:3 Ghz双核,4GB内存作为参考。
这就是代码高尔夫,最短的解决方案获胜。解决方案可以是完全正常运行的程序或功能