题解 | #字符串的排列#

字符串的排列

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

class Solution {
public:
    vector<string> Permutation(string str) {
        vector<string> ans;
        if(str.size()==0){
            return ans;
        }
        if(str.size()==1){
            ans.push_back(str);
            return ans;
        }
        map<char,int> maps;
        for(int i=0;i<str.size();i++){
            if(!maps[str[i]]){
                maps[str[i]]=1;
            }
            else{
                maps[str[i]]++;
            }
        }
        map<char,int>::iterator it;
        for(it=maps.begin();it!=maps.end();it++){
            string str0=str;
            vector<string> vecs=Permutation(str0.erase(str0.find(it->first),1));
            str0=" ";
            str0[0]=it->first;
            for(int i=0;i<vecs.size();i++){
                ans.push_back(str0+vecs[i]);
            }
        }
        return ans;
    }
};

全部评论

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
牛客737698141号:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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