c_cpp 字符串的排列的.cpp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 字符串的排列的.cpp相关的知识,希望对你有一定的参考价值。

//输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。



void PermutationHelp(vector<string> &ans, size_t k, string str) //遍历第k位的所有可能
{
    if(k == str.size() - 1)
        ans.push_back(str);
    for(size_t i = k; i < str.size(); i++)
    {
        if(i != k && str[k] == str[i])
            continue;
        swap(str[i], str[k]);
        PermutationHelp(ans, k + 1, str);
    }
}

vector<string> Permutation(string str) {
    sort(str.begin(), str.end());
    vector<string> ans;
    PermutationHelp(ans, 0, str);
    return ans;
}

以上是关于c_cpp 字符串的排列的.cpp的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 重新排列二进制字符串作为备用x和y出现

c_cpp 具有重复的排列

c_cpp 子集树与排列树的.cpp

c_cpp 就地重新排列给定的链表。

c_cpp 31.下一个排列

c_cpp 排列