您的任务是将从1
到的整数N
(作为输入)组装成一个具有宽度W
和高度的矩形H
(也作为输入提供)。单个数字可以旋转90度的任意倍数,但是它们必须在矩形中显示为连续的块。也就是说,您不能将其中一个数字分解为多个数字并将这些数字分别放置在矩形中,也不能将数字的三个数字弯曲到一个角上。您可以考虑每个数字都是用来建造墙的砖头。
这是一个例子。说您的输入是(N, W, H) = (12, 5, 3)
。一种可能的解决方案是:
18627
21901
53114
为了清楚起见,这里有此网格的两个副本,一个副本隐藏了一位数字,而另一个副本隐藏了两位数字:
1#### #8627
2##01 #19##
##11# 53##4
如果矩形不能以独特的方式再次拆卸,那就很好。例如,在上面的示例中,12
也可以这样放置:
##### 18627
21#01 ##9##
##11# 53##4
规则
您可以假定它N
是正W*H
数,并且与整数从1
到N
包含在内的位数匹配,并且存在将矩形平铺到给定数字中的情况。我目前尚无证据证明这是否总是可能的,但是如果您愿意,我会对此感兴趣。
输出可以是单个换行符分隔的字符串,也可以是字符串列表(每行一个),也可以是一位整数列表的列表(每个单元格一个)。
提交的结果必须是确定的,并且您应该能够在合理的台式机上在一分钟之内处理所有测试用例。
您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。
您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。
这是代码高尔夫球,因此以字节为单位的最短有效答案为准。
测试用例
除了第一个,这些都不是唯一的。每个测试用例N W H
后面都有一个可能的输出。当矩形太窄而无法水平书写较大的数字时,请确保您的答案有效。
1 1 1
1
6 6 1
536142
6 2 3
16
25
34
10 1 11
1
0
8
9
2
6
7
3
1
5
4
11 13 1
1234567891011
27 9 5
213112117
192422581
144136119
082512671
205263272
183 21 21
183116214112099785736
182516114011998775635
181116013911897765534
180415913811796755433
179115813711695745332
178315713611594735231
177115613511493725130
176215513411392715029
175115413311291704928
174115313211190694827
173115213111089684726
172015113010988674625
171915012910887664524
170814912810786654423
169714812710685644322
168614712610584634221
167514612510483624120
166414512410382614019
165314412310281603918
164214312210180593817
163114212110079583716
200 41 12
81711132917193661114105533118936111184136
50592924448815915414562967609909953662491
89529721161671582389717813151113658811817
41418184511110119010183423720433017331118
35171183614003547461181197275184300111711
41874381132041861871718311415915921116264
11914245014112711011594492626831219331845
17125112629222085166344707736090956375181
94507611291431121128817413566319161275711
11011540021119913511011169939551729880780
92725141607727665632702567369893534277304
78118311405621148296417218591118562161856
(10, 1, 1)
,这是不可能的(假设N
构造中必须使用从1到MUST的所有数字)。如果保持该约束,则矩形区域的单位必须至少为位数,1..N
以使其成为可能。如果放宽约束,那么在所有情况下都有可能(但是挑战并不那么有趣:P)
N
的矩形(最终是,但程序可以从宽度和高度计算出来),并且程序需要检查矩形是否是对此挑战的有效答案。 ...