题解 | #字符串的排列#

字符串的排列

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

回溯法,然后用set去重

class Solution {
public:
    string s;
    vector<string>result;
    void backtracking(string str,int len,int index){
        if(index==len){
            result.push_back(str);
            return;
        }
        for(int i=index;i<len;++i ){
            swap(str[i],str[index]);
            backtracking(str,len,index+1);
            swap(str[i],str[index]);
        }
    }
    vector<string> Permutation(string str) {
        s="";
        result.clear();
        unordered_set<string>st;
        if(str.empty())return result;
        int n=str.length();
        backtracking(str,n,0);
        int m=result.size();
        for(int i=0;i<m;++i){
            st.insert(result[i]);
        }
        result.clear();
        for(auto it=st.begin();it!=st.end();it++){
            result.push_back(*it);
        }
        sort(result.begin(),result.end());
        return result;
    }
};
全部评论

相关推荐

双尔:你就写拥有ai开发经历,熟练运用提示词,优化ai,提高ai回答质量
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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