面試題:字符串的排序

輸入一個字符串,打印出該字符串中字符的所有序列。例如,輸入字符串abc,則打印出由字符a、b、c所能排列出來的所有字符串abc、acb、bac、bca、cab和cba。

void Permutation(char* pStr)

{

 if(pStr==nullptr)

 return;

 Permutation(pStr,pStr);

}

void Permutation(char* pStr,char* pBegin)

{

 if(*pBegin=='\0')

{

 printf("%s\n",pStr);

}

else

{

 for(char* pCh=pBegin;*pCh!='\0';++pCh)

{

 char temp=*pCh;

*pCh=*pBegin;

*pBegin=-temp;

Permutation(pStr,pBegin+1);

temp=*pCh;

*pCh=*pBegin;

*pBegin=temp;

}

}

}


想法:額,指針讓我看的難受,等我之後把C++補了後再後頭看看這些涉及指針的題目,現在只能把答案抄上來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章