作为其压缩算法的一部分,JPEG标准沿着交替方向的对角线将矩阵展开为向量:
您的任务是将展开的矢量与矩阵维一起取并重建相应的矩阵。举个例子:
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3
应该屈服
[1 2 3 4
5 6 7 8
9 1 2 3]
而尺寸6, 2
会给
[1 2 6 3 1 2
5 9 4 7 8 3]
规则
您可以选择仅将一个尺寸作为输入。各个输入可以任何顺序进行。您可以假定宽度和高度为正,并且对于给定的矢量长度有效。
您可以假设向量元素是小于的正整数10
。
您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。
输入向量可以任何方便,明确,平坦的列表或字符串格式给出。
输出矩阵可以是任何方便,明确,嵌套的列表或字符串格式,也可以是带有两个矩阵维的平面列表。(或者,当然,如果您的语言包含矩阵类型,则作为矩阵类型。)
适用标准代码高尔夫球规则。
测试用例
每个测试用例的形式都是vector width height => matrix
。
[1] 1 1 => [[1]]
[1 2 3 1] 2 2 => [[1 2] [3 1]]
[1 2 3 1] 4 1 => [[1 2 3 1]]
[1 2 5 9 6 3 4 7 1 2 8 3] 3 4 => [[1 2 3] [5 6 4] [9 7 8] [1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 4 3 => [[1 2 3 4] [5 6 7 8] [9 1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 6 2 => [[1 2 6 3 1 2] [5 9 4 7 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 12 1 => [[1 2 5 9 6 3 4 7 1 2 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 1 12 => [[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]]