您的位置:首页 > 其它

字符串的全排列

2015-07-14 20:36 148 查看
摘自《剑指offer》

题目要求很简单,输出一串字符串的全排列,例如:输入abc  输出  abc/acb/bac/bca/cba/cab

代码我是真没怎么看明白,可能这也是递归程序比较难调试的原因吧.

void Permutation(char *pstr,char *pBegin)
{
if (*pBegin=='\0')
{
cout<<pstr<<endl;
}
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;
}
}
}

void Permutation(char *pstr)
{
if (pstr==NULL)
return;
Permutation(pstr,pstr);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: