C++

使用C++ STL的next/prev_permutation函

2017-04-07  本文已影响0人  codinRay

使用C++ STL的next_permutation函数可以简单的枚举出一个升序排列的字符串的全排列,它包含在头文件<algorithm>里。

用C类型字符串举一个例子:

int main() {
    char str[] = "321";
    int len = strlen(str);
    sort(str, str + len);
    puts(str);
    while(next_permutation(str, str + len)) {
        puts(str);
    }
    return 0;
}

另外,prev_permutation函数可以枚举出一个降序排列的字符串的全排列。

为了使字符串更方便的被降序排列,我们引入:

sort(arr, arr + size, greater<int>());

用以上的方式可以将int类型数组arr降序排列,同理可以使用在字符串上。

所以:

int main() {
    char str[] = "132";
    sort(str, str + strlen(str), greater<int>());
    while(prev_permutation(str, str + strlen(str)))
        puts(str);
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读