一、题目
二、思路
总体思路分析:
每一次选择,都从所有现存字符中不重复的选择一个添加到字符串
三、代码
class Solution {
public:
vector<string>res;
vector<string> Permutation(string str) {
if(str.empty())
{
return res;
}
string tmp;
dfs(str,tmp);
return res;
}
void dfs(string str,string tmp)
{
if(str.length()==0)
{
return;
}
else if(str.length()==1)
{
tmp+=str;
res.emplace_back(tmp);
return;
}
string dic="";
for(int i=0;i<str.length();++i)
{
if(find(dic.begin(),dic.end(),str[i])==dic.end())
{
tmp+=str[i];
string Res_Str=str;
Res_Str.erase(Res_Str.begin()+i);
dic+=str[i];
dfs(Res_Str,tmp);
tmp.pop_back();
}
}
}
};