递归,注意判断去重。
class Solution {
public:
vector<string> vec;
void dfs(string ans, string str)
{
int len = str.size();
if(len == 0)
vec.push_back(ans);
else
for(int i = 0; i < len; i++)
if(i == 0 || str[i] != str[i - 1])
dfs(ans + str[i], str.substr(0, i) + str.substr(i + 1));
}
vector<string> Permutation(string str) {
int len = str.size();
sort(str.begin(), str.end());
dfs("", str);
return vec;
}
};


京公网安备 11010502036488号