【发布时间】:2014-04-03 08:50:09
【问题描述】:
我正在尝试创建一个数组来显示给定数字输入的每个数字排列。对于给定的输入"123",数组应如下所示:
["123", "132", "213", "231", "312", "321"]
我可以得到一个包含单独数字数组的数组:
a = []
"123".split('').each {|n| a.push(n) }
arraycombinations = a.permutation(a.length).to_a
# => [["1", "2", "3"], ["1", "3", "2"], ["2", "1", "3"], ["2", "3", "1"], ["3", "1", "2"], ["3", "2", "1"]]
但我不知道如何在保留第一个维度的同时加入arraycombinations 的第二个或第三个维度。
这些尝试都失败了:
arraycombinations.map {|x| print arraycombinations.join("") }
arraycombinations.map {|ar| ar.split(",") }
arraycombinations.each {|index| arraycombinations(index).join("") }
如何隔离join 函数以仅应用于多维数组中的第二维?
【问题讨论】:
标签: ruby arrays join multidimensional-array permutation