首页 > 试题广场 > 给一个单词,写一个程序找到这个单词中的字符的排列组合情况,例
[问答题]
给一个单词,写一个程序找到这个单词中的字符的排列组合情况,例如AAA, 只有一个排列AAA, AAC有AAC,CAA,ACA,又如ABC,有ABC,BAC,CBA,BCA,ACB,CAB等几种排列。
vector<string> result;
void solution(string str, int begin) {
    if (str.size() <= 0)    return;
    if (begin == str.size() - 1) {
        int len = result.size();
        for (int i = 0;i < len;i++) {
            if (result[i] == str)
                return;
        }
        result.push_back(str);
    }
    for (int i = begin;i < str.size();i++) {
        char temp = str[i];
        str[i] = str[begin];
        str[begin] = temp;
        solution(str, begin + 1);
        temp = str[i];
        str[i] = str[begin];
        str[begin] = temp;
    }
}
//如需根据字典序输出,则自定义cmp,然后对result使用sort即可
发表于 2019-12-03 08:57:36 回复(0)

问题信息

上传者:小小
难度:
1条回答 184浏览

热门推荐