剑指offer 027、字符串的排列
题目
题解
DFS + 回溯
还不会做,看的秀哥的做法。会了继续补充
class Solution {
public:
vector<string> result;
void permutationAdjust(string &s,int begin,int end) {
if(begin == end){
result.push_back(s);
return ;
}
unordered_map<int,int> visited;
for(int i = begin; i<= end; ++i){
if(visited[s[i]] == 1) continue;
swap(s[i],s[begin]);
permutationAdjust(s,begin+1,end);
swap(s[i],s[begin]);
visited[s[i]] =1;
}
}
vector<string> Permutation(string str) {
if (str.size() == 0) return vector<string>();
permutationAdjust(str,0,str.size()-1);
sort(result.begin(), result.end());
return result;
}
};