字串的全排列
void Permute(strInput,strOutput,recursLev)
1 n 2 if recurLev = n
3 then print strOutput;
4 return;
5 for i 6 do if strInput[i] has been used //used[i]
7 go to step 5, operate the next characater.
8 else
9 do strOutput[recursLev] 10 used[i] 11 Permute(strInput,strOutput,recursLev+1)
12 used[i]
下面是我用C實現的上述算了,增加了一個包裝類,分配了三個陣列並對輸入字串做了一些處理.
int Permute(char inString[])
{
int length,i,*used;
char *out;
length = strlen(inString);
ut = (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
{
used[i] = 0;
}
DoPermute(inString,out,used,length,0);
free(out);
free(used);
return 1;
}
{
int i;
{
printf("%s\n",out);
return;
}
{
if(used[i])
continue;
out[recursLev] = in[i];
used[i] =1;
DoPermute(in,out,used,length,recursLev+1);
used[i] = 0;
}
}
void DoPermute(char in[],char out[],int used[],int length,int recursLev)
{
int i;
char preChar;
if(recursLev == length)
{
printf("%s\n",out);
return;
}
preChar = 0;
for(i = 0; i
{
if(used[i] ==0 &&in[i]!=preChar)
{
preChar = in[i];
out[recursLev] = in[i];
used[i] =1;
DoPermute(in,out,used,length,recursLev+1);
used[i] = 0;
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-612016/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 字串全排列字串
- 字串全排列 java實現字串Java
- 字串的排列字串
- 字串的升序降序排列字串
- 【劍指offer】字串的排列字串
- 九度 1369 字串的排列字串
- 567. 字串的排列(中)字串
- JavaScript字串逆序排列JavaScript字串
- JZ-027-字串的排列字串
- 有重複元素的全排列
- 全排列演算法演算法
- Java實現-全排列Java
- 演算法——全排列演算法
- 無重複字串的排列組合字串
- 劍指 Offer 38. 字串的排列字串
- LeetCode 567. 字串的排列LeetCode字串
- [CareerCup] 1.3 Permutation String 字串的排列字串
- 實現自然數N的全排列
- 字串排列組合問題字串
- Day 28 | 491.遞增子序列 、46.全排列、 47.全排列 II
- 【Algorithm】全排列演算法Go演算法
- JavaScript陣列元素全排列JavaScript陣列
- 前端電商 sku 的全排列演算法前端演算法
- 全排列演算法的JS實現演算法JS
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- Leetcode——46. 全排列LeetCode
- 【LeetCode】46. 全排列LeetCode
- leetcode:全排列(java回溯)LeetCodeJava
- js陣列全排列問題JS陣列
- LeetCode系列46—全排列LeetCode
- LeetCode-046-全排列LeetCode
- 全排列及相關擴充套件演算法(二)——求字典序下一組排列及全排列演算法套件演算法
- Python語言的全排列怎麼提速?Python
- 排列子串;及翻譯字串分析字串
- 指標陣列練習排列字串指標陣列字串
- LeetCode-047-全排列 IILeetCode
- 遞迴解決全排列問題遞迴
- [演算法]全排列類問題演算法