字符串排列、组合(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)
全排列代码:
?
组合代码:
?
"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)
全排列代码:
?
?
相关文章推荐
- 【c语言】编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
- c语言实现排列组合算法问题
- 字符串的组合算法问题的C语言实现攻略
- 字符串的排列和组合实现(面试题 28)
- 排列组合 C语言实现
- C语言实现数学上的组合和排列
- 字符串全排列与全组合的递归实现-Java版
- 排列和组合的非递归算法的C语言实现
- C语言实现的阶乘,排列和组合实例
- 排列与组合的C语言实现
- 字符串排列和组合的JAVA实现 [No. 44]
- 排列组合与集合的C语言实现相关
- C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列
- C语言实现 函数reverse_string(char * string) 将参数字符串中的字符反向排列。
- java实现字符串排列组合问题
- c语言数组模拟实现排列组合
- 字符串数组元素排列与组合的Java递归实现
- 字符串排列和组合的JAVA实现
- c语言 实现 字符串倒序排列