void permute(string s)
{
sort(s.begin(),s.end());
cout<<s<<endl;
while(next_permutation(s.begin(),s.end()))
cout<<s<<endl;
}
上面的是标准库的迭代版本。
下面的是递归版本
void permute(string s,unsigned k)
{
if (k == s.length()-1)
{
cout<<s<<endl;
}
for (unsigned i = k;i<s.length();++i)
{
swap(s[i],s[k]);
permute(s,k+1);
}
}
时间: 2024-11-05 17:24:42