输出字符串的所有排列
2012-09-04 11:39
274 查看
题目:
输出字符串的所有排列。
思路:
递归方法:
将该问题分解为n个相同的子问题。
设str=s1s2...sn;
[str]
表示str的全排列,
str-sk表示str中去掉第k个字符后的字符串,
则有
[str] = s1[str-s1] + s2[str-s2]+...+sn[str-sn];
再去求解n个子问题即可。
输出字符串的所有排列。
思路:
递归方法:
将该问题分解为n个相同的子问题。
设str=s1s2...sn;
[str]
表示str的全排列,
str-sk表示str中去掉第k个字符后的字符串,
则有
[str] = s1[str-s1] + s2[str-s2]+...+sn[str-sn];
再去求解n个子问题即可。
void Permutation( char* pStr) { if( pStr == NULL ) return; Permutation( pStr,pStr); } void Permutation( char *pStr, char *pBegin) { if( *pBegin == '\0') //递归结束,递归到最后一位 { printf("%s\n",pStr); return; } for( char* pCh = pBegin; *pCh!='\0'; ++pCh ) //分解n个小问题 { char temp= *pCh; *pCH =*pBegin; *pBegin =temp; Permutation(pStr, pBegin+1); //子问题 //换回来,再进行下一个子问题 temp = *pCh; *pCH =*pBegin; *pBegin =temp; } }
相关文章推荐
- 笔试题:给出一个函数来输出字符串的所有排列
- 算法40(字符串的排列,给出一个函数来输出一个字符串的所有排列)
- C#实现输入一个字符串输出该字符串字符的所有排列方式
- 输入一个字符串,要求输出字符串中字符所有的排列,例如输入"abc",得到"abc","acb","bca","bac","cab","cba"
- 3、给出一个函数输出字符串的所有排列
- 给定一个字符串,输出所有的排列组合方式
- 输出字符串的所有排列组合
- 给出一个函数来输出一个字符串的所有排列
- 给出一个函数来输出一个字符串的所有排列
- 微软等数据结构+算法面试100题(2)--给出一个函数来输出一个字符串的所有排列
- IT公司机试常考的一道题--将任意字符串逆序输出或者输出所有排列
- 给出一个函数来输出一个字符串的所有排列。
- 【递归】输出一个字符串的所有排列
- 输出字符串的所有排列组合情况
- Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)
- 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
- 输出字符串所有排列
- JAVA 输出指定字符串所有排列组合
- 给出一个函数来输出一个字符串的所有排列
- 递归的应用,输出字符串的所有排列(java)