【算法题】字符串的全排列
2012-09-28 16:19
148 查看
问题:编写一个函数,用它把字符串中所有的字符的各种排列形式全部显示出来,即用给定字符做全排列。如
比如给定字符串“hat”,函数输出全排列:tha,aht,tah,ath,hta,hat.
算法如下:
比如给定字符串“hat”,函数输出全排列:tha,aht,tah,ath,hta,hat.
算法如下:
void DoPermute(char in[],char out[],int used[],int length,int recursLev) { int i; /*基底情况*/ if(recursLev==length) { printf("%s\n",out ); return ; } /*递归情况*/ for(i=0;i<length;i++) { if(used[i]) continue; out[recursLev]=in[i]; used[i]=1; DoPermute(in,out,used,length,recursLev+1); used[i]=0; } } int Permute(char inString[]) //字符串全排列 { int length,i,*used; char *out; length=strlen(inString); out=(char *)malloc(length+1); if(!out) return 0; out[length]='\0'; used=(int *)malloc(sizeof(int)*length); if(!used) return 0; /*初始化*/ for(i=0;i<length;i++) { used[i]=0; } DoPermute(inString,out,used,length,0); free(out); free(used); return 1; } void main() { char *s="abcd"; Permute(s); }
相关文章推荐
- 算法练习 - 字符串的全排列(字典序排列)
- 算法习题53:字符串全排列问题
- 算法题:字符串的全排列
- 字符串全排列生成算法
- 【算法15】字符串的全排列
- 数组全排列算法(一)字符串数组全排列——逐个追加组合算法
- 算法思维(递归)训练:输出字符串字符的全排列
- [算法] 字符串的全排列 [dfs - 递归神技]
- 算法题:字符串的全排列
- 算法-字符串的全排列
- [算法] 字符串的全排列 [dfs - 递归神技]
- 算法笔记_025:字符串的全排列(Java)
- js-FCC算法-No repeats please字符串的全排列
- 算法 - 输出一个字符串的全排列(C++)
- 【算法】字符串的全排列
- 算法-字符串之全排列
- js-FCC算法-No repeats please字符串的全排列(详解)
- 算法-字符串全排列问题
- 算法学习-字符串的全排列
- 剑指offer——字符串的排列(好题,扩展题也很好,全排列的算法)