中级农民
- 积分
- 113
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-3-30
- 最后登录
- 1970-1-1
|
pick drop 题不难,就是可能性超级多
- def pool(list)
- result = []
- helper(result, [], list, [], [], list.size)
- result
- end
- def helper(result, current, list, picks, drops, size)
- if drops.size == size
- result << current
- return
- end
- list.each do |item|
- helper(result, current + ['pick ' + item], list-[item], picks + [item], drops, size)
- end
- picks.each do |item|
- helper(result, current + ['drop ' + item], list, picks - [item], drops+[item], size)
- end
- end
- p pool ['A', 'B']
复制代码
补充内容 (2019-3-2 21:17):
用ruby写的,懂python的应该一眼就能看懂 |
|