输入一个字符串,打印出该字符串中字符的所有序列。例如,输入字符串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++补了后再后头看看这些涉及指针的题目,现在只能把答案抄上来。