全排列学习
不怎么理解下面的代码啊?谁来解释下
#include<iostream>
#include<string>
using namespace std;
char str[100];
void swap(int i,int j)
{
char ch=str[i];
str[i]=str[j];
str[j]=ch;
}
void Foo(char *str,int s,int e)
{
int start;
if(s==0)
start=s;
else
start=s+1;
for(int i=start;i<e;++i)
{
swap(s,i);
cout<<str<<endl;
Foo(str,s+1,e);
swap(s,i);
}
}
int main()
{
cin>>str;
Foo(str,0,strlen(str));
return 0;
}

浙公网安备 33010602011771号