题解 | 字符串排列
字符串排列
https://www.nowcoder.com/practice/8380c8cf28954a188362206b1991b5d6
#include <algorithm> #include <vector> class Permutation { void dfs(const string&A, string &cur, vector<bool> used, vector<string>&res){ if (cur.size() == A.size()) res.push_back(cur); for(int i=0;i<A.length();++i){ if(used[i]) continue; used[i] =true; cur.push_back(A[i]); dfs(A, cur, used, res); cur.pop_back(); used[i] =false; } } public: vector<string> getPermutation(string A) { // write code here sort(A.rbegin(), A.rend()); string cur; vector<string> res; vector<bool> used(A.length(), false); dfs(A, cur, used, res); sort(res.rbegin(), res.rend()); return res; } };