【发布时间】:2014-02-27 15:07:30
【问题描述】:
我最近解决了一个问题,它需要一个 3-4 位数字,例如 1234,(以及一些更大的数字)并返回一个排序数组,其中包含所有可能的 permutations 数字 [1234, 1432, 4213, 2431, 3412, 3214, etc.]
我不喜欢我的解决方案,因为它使用 .times 将数字添加到数组中,因此仍然容易出错,而且丑陋。有没有一种方法可以将数字添加到数组中完美的次数,以便一旦达到所有可能的数字改组,程序就会停止并返回数组?
def number_shuffle(number)
array = []
number = number.to_s.split(//)
1000.times{ array << number.shuffle.join.to_i}
array.uniq.sort
end
【问题讨论】:
标签: ruby arrays sorting split shuffle