题解 | #全排列#简简单单深度优先遍历
全排列
https://www.nowcoder.com/practice/5632c23d0d654aecbc9315d1720421c1
#include <iostream>
#include<string>
#include<vector>
using namespace std;
vector<string>res; //保存结果
void dfs(string s,string cur){
if (s=="") res.push_back(cur);
for(int i=0;i<s.size();++i){
char tmp=s[i];
s.erase(i,1); //删去第i个位置,dfs
dfs(s,cur+tmp);
s.insert(i,1,tmp); //回溯,加回字符
}
}
int main() {
string s;
while(cin>>s){
res={};
dfs(s,"");
for(string x:res) cout<<x<<endl;
}
}

