/*
* Description:
* 字符串全排列
* Author :FinL
* Language: C
* Date : 2010-09-20
*/
#include
using namespace std;
/*注意,输入字符串的时候不中间不要留空格。*/
/*思想还是递归。对于abc这样的字符串来说,分别让a,b,c各出现在start位置一次,然后递归求后面的组合*/
void Permutation(char *src,char *start)
{
if(NULL==src||NULL==start)
return;
if(0==*start)
cout<
for(char *p=start;*p!=0;p++)
{
if(p!=start)
{
char tmp=*start;
*start=*p;
*p=tmp;
}
Permutation(src,start+1);
if(p!=start)
{
char tmp=*start;
*start=*p;
*p=tmp;
}
}
}
int main()
{
char *src=NULL,*p;
src=(char*)malloc(20*sizeof(char));
p=src;
cin>>src;
if(NULL==src)
{
cout<<"Memory allocation for src failed."<
return -1;
}
Permutation(src,p);
return 0;
}
阅读(1090) | 评论(0) | 转发(0) |