您的位置:首页 > 编程语言 > C语言/C++

字符串排列、组合(C语言实现)

2013-08-17 00:13 941 查看
这里主要介绍字符串排列组合问题,高中数学常见的题目,不用详细介绍,看例子就可以解决问题

"1212"  

全排列结果为 1212,1221,1122,2112,2121,2211

组合结果是   1,2,12

我所理解的排列组合结果是  1,2,12,21

解决方案:主要是利用递归思想

排列问题:求n个字符排列问题简化求n-1个字符排列问题,逐层递归到1个字符。有n个字符的序列第一个字符与后面每一个前面没有重复的字符交换,避免了重复序列,然后求n-1个字符全排列   f(char *s, int index,int len)index为第一个下标,len是s总长度

组合问题:先按照递增排序,然后挑出无重复的元素存于另一个字符串,依次从字符串挑选1..n个字符,递归选择字符串  combine(char *s, char *re,int len, int num)  

全排列代码:

?
  组合代码:

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排列 组合 递归