题解 | #字符串的排列#
字符串的排列
http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7
- 简简单单的回溯。
- 注意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的方式
}
};算法解析 文章被收录于专栏
这里主要是算法岗的自我思路总结

查看4道真题和解析