字符集的组合算法

问题: 输入N个不同字符,如'a','b','c','d','e', 计算从这个字符集合中任意抽取n个(n<=N)不同字符的所有组合结果,比如从中抽取4个字符的组合结果为abcd, abce,abde,acde,bcde共5个。

分析:从字符全排列的算法(参见上一篇"字符集的排列算法")中可以知道,组合操作只是选取一部分字符作排列,同时需要把重复的情况剔除,如abc和cba是两个不同排列,但是只算一个组合,去掉重复的情况可以按次序选取元素,即下一个位置(pos)的字符需要大于上一个位置的字符。

算法实现:

out[pos-1] < chars[i] 语句用于保持次序,以防出现重复组合情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值