题解 | #字符串的排列#

字符串的排列

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]);
        }
    }

};
全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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