- 简简单单的回溯。
- 注意set去重
class Solution { public: void perm(int pos, string s, set<string>& res ){ if(pos==s.size()-1){ res.insert(s); return; } for(int i = pos; i< s.length();i++){//回溯 swap(s[i],s[pos]);//字符串对应位置就自动变了 perm(pos+1,s,res); swap(s[i],s[pos]); } } vector<string> Permutation(string str) { if(str.empty()) return {}; set<string> res; perm(0,str,res); return vector<string>({res.begin(),res.end()});//记住这种set转换为vector的方式 } };