class Solution { public: string path; unordered_set<string>set;//去重 vector<string>ans; int n; void f(string s,int dep){ if(dep==n){ set.insert(path); return; } path.push_back(s[dep]); f(s,dep+1); path.pop_back();//恢复现场 f(s,dep+1); } vector<string> generatePermutation(string s) { n=s.size(); f(s,0); for(string path:set){ ans.push_back(path); } return ans; } };
第1题【算法讲解038【必备】常见经典递归过程解析】 https://www.bilibili.com/video/BV19m4y1n7mo/?share_source=copy_web&vd_source=5065fa61022691e8df35c771a30e6d29