要求:rt
思路:重复的先排序后last记录
class Solution {
public:
vector<string> ans;
string tmp;
vector<bool> visited;
void dfs(string& s){
if(tmp.length()==s.length()){
ans.push_back(tmp);
return;
}
char last='1';
for(int i=0;i<s.length();++i){
if(!visited[i]&&s[i]!=last){
last=s[i];
visited[i]=true;
tmp+=s[i];
dfs(s);
tmp.pop_back();
visited[i]=false;
}
}
}
vector<string> permutation(string s) {
visited.resize(s.length());
sort(s.begin(), s.end());
dfs(s);
return ans;
}
};