作者 | Cooper Song
责编 | 伍杏玲
所谓全排列,就是把一堆字符按照一定的顺序排列起来,所有可能的组合。
举个简单的例子,"123"的全排列为"123"、"132"、"213"、"231"、"312"、"321"。
使用库函数进行全排列
C++的<algorithm>头文件中实现了全排列,即next_permutation函数,它是基于字典序实现的,执行一次next_permutation函数就相当于进行了一次“变异”,变异之后字典序会比原来的字符串大,但其位次也仅仅排在变异之前的字符串之后。什么意思呢?比如"123"调用next_permutation函数经过一次变异之后会变成"132",而不是"213"、"321"等字典序更大的字符串。