#include <iostream>
using namespace std;
void fun(string& s,bool* flag,string cur){
if(s.size()==cur.size()){
cout<<cur<<endl;
return;
}
for(int i=0;i<s.size();++i){
if(flag[i]==false){
flag[i]=true;
fun(s,flag,cur+s[i]);
flag[i]=false;
}
}
}
int main() {
string str;
cin>>str;
bool*flag=new bool[str.size()];//默认是false,有的编译器不一定是,所以需要自己去初始化为false
fun(str, flag,"");
}
// 64 位输出请用 printf("%lld")
一个递归直接拿下

京公网安备 11010502036488号