- Perl code
class Array def make_array arr = [] self.each{|i| arr.insert -1, [i]} arr end def make_array2(e) self.each{|i| i.insert -1, e} end end def combine(array, size) return [ array ] if array.size == size return array.make_array if size == 1 last = array[-1] left = array - [ last ] a = combine(left, size - 1).make_array2(last) b = combine(left, size) return a + b end p combine(%w{ a b c d e}, 4) p combine(%w{ a b c d e}, 3) p combine(%w{ a b c d e}, 2) p combine(%w{ a b c d e}, 1)
不过还是希望高手提提意见,关于效率,关于风格什么的。任何建议都OK。
我自己给我的建议是,多看文档,少走弯路~。
------解决方案--------------------
过来看看,向八神学习,呵呵!
------解决方案--------------------
不懂ruby的飘过