文章
15
粉丝
446
获赞
2
访问
121.9k
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void f(string s,string pre)
{
int len=s.size();
if(len==1) cout<<s<<endl;
if(len==2)
{
cout<<pre+s<<endl;//先输出一下原本的
swap(s[0],s[1]);
cout<<pre+s<<endl;//交换后再输出一次
}
else
{
for(int i=0;i<len;i++)
{
string si=s;//取一个做pre
si.erase(i,1);//删除pre准备全排
f(si,pre+s[i]);//递归,参数传递pre便于输出
}
}
return;
}
int main()
{
string s;
while(cin>>s)
{
f(s,"");
cout<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发