void dfs(int h, string str, set<string>& s) {
if (h == str.size() - 1) {
s.insert(str);
return;
}
for (size_t i = 0; i < str.size(); ++i) {
swap(str[i], str[h]);
dfs(h + 1, str, s);
swap(str[i], str[h]);
}
}
vector<string> Permutation(string str) {
vector<string> ret;
if (str.empty()) {
return ret;
}
set<string> s;
dfs(0, str, s);
for (set<string>::iterator it = s.begin(); it != s.end(); ++it) {
ret.push_back(*it);
}
return ret;
}
NC121 字符串的排列
最新推荐文章于 2022-09-21 12:12:37 发布