class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return string字符串vector
*/
void func(string s, string& str,vector<string>& v,vector<int>& str_v)
{
if(s.size()==str.size())
{
v.push_back(s);
return ;
}
for(int i=0;i<str.size();i++)
{
if(str_v[i])
{
continue;
}
if(i>0&&str[i]==str[i-1]&&str_v[i-1]==0)
{
continue;
}
str_v[i]=1;
func(s+str[i],str,v,str_v);
str_v[i]=0;
}
}
vector<string> Permutation(string str) {
// write code here
sort(str.begin(),str.end());
vector<string> v;
vector<int> str_v;
str_v.resize(str.size(),0);
string s="";
func(s,str,v,str_v);
return v;
}
};