Find all subsets of size N in an array using Ruby

六眼飞鱼酱① 提交于 2020-01-02 04:44:06

问题


Given an array ['a', 'b', 'c', 'd', 'e', 'f'], how would I get a list of all subsets containing two, three, and four elements?

I'm quite new to Ruby (moving from C#) and am not sure what the 'Ruby Way' would be.


回答1:


Check out Array#combination

Then something like this:

2.upto(4) { |n| array.combination(n) }



回答2:


Tweaking basicxman's a little bit:

2.upto(4).flat_map { |n| array.combination(n).to_a }
#=> [["a", "b"], ["a", "c"], ["a", "d"], ..., ["c", "d", "e", "f"]]


来源:https://stackoverflow.com/questions/7356030/find-all-subsets-of-size-n-in-an-array-using-ruby

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!