题解 | #字符串的排列#

字符串的排列

http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7

class Solution {
public:
    vector<string> Permutation(string str) {
        vector<string> ans;
        backtracking(str, 0, ans);
        //去重复
        unordered_set<string> ansset;
        vector<string> newans;
        for(int i = 0; i < ans.size(); i++){
            ansset.insert(ans[i]);
        }
        for(auto pos = ansset.begin(); pos != ansset.end(); pos++){
            newans.push_back(*pos);
        }
        return newans;
    }

    void backtracking(string& str, int level, vector<string>& ans){
        if(level==str.length()-1){
            ans.push_back(str);
            return;
        }
        for(int i = level; i < str.length(); i++){
                swap(str[i],str[level]);
                backtracking(str, level+1, ans);
                swap(str[i],str[level]);
        }
    }

};
全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:23
steelhead:你回的有问题,让人感觉你就是来学习的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务