题解 | #字符串的排列#

字符串的排列

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return string字符串vector
     */
    vector<string> Permutation(string str) {
        // write code here
        vector<string> res;
        set<string> existsstr;
        int n = str.size();
        backtrace(res, existsstr,0,n,str);
        return res;
    }

    void backtrace(vector<string> &res,set<string> &existsstr, int first, int n, string str){
        if(first == n){
           if(existsstr.find(str) == existsstr.end()){
                res.push_back(str);
                existsstr.insert(str);
            } 
        }
        else{
            for(int i=first ;i<n;i++){
                int temp = str[first];
                str[first] = str[i];
                str[i] = temp;
                backtrace(res, existsstr, first+1, n, str);
                temp = str[first];
                str[first] = str[i];
                str[i] = temp;
            }
            
        }
    }
};

全部评论

相关推荐

05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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