题目:
next_permutation()函数介绍:next_permutation(a,a+n)是对数组a进行全排列的一个函数,在使用next_permutation()函数之前有一个要求,就是要实现将数组a按照从小到大的顺序排好,所以next_permutation()函数一般和sort()函数结合使用。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
string str = "AA223344";
int main()
{
sort(str.begin(),str.end()); //在使用next_permutation()函数之前先要使 数组中的元素按照字典序从小到大排序
do
{
int fA = str.find('A',0);
int sA = str.find('A',fA+1);
int f2 = str.find('2',0);
int s2 = str.find('2',f2+1);
int f3 = str.find('3',0);
int s3 = str.find('3',f3+1);
int f4 = str.find('4',0);
int s4 = str.find('4',f4+1);
if((sA-fA==2)&&(s2-f2==3)&&(s3-f3==4)&&(s4-f4==5))
{
cout << str << endl;
return 0;
}
}while(next_permutation(str.begin(),str.end()));
return 0;
}