有重复元素的全排列

时间:2022-06-20 19:13:00

描述:输入n(≤10)个小写字母(可能重复),输出n个字符的全部排列

输入:aacc

输出:aacc     acac    acca   caac   caca    ccaa

利用STL中的next_permutation()函数

代码仅供参考,勿拷贝作为课堂派作业!!!


#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
char a[1000];
int n;
int i;
while(scanf("%d",&n))
{
getchar();
for(i=0;i<n;i++)
scanf("%c",&a[i]);
sort(a,a+n); ///对字符串排序
for(i=0;i<4;i++)
{ ///输出第一个串
printf("%c ",a[i]);
}
printf("\n");
while(next_permutation(a,a+4))
{ ///输出剩下的串
for(i=0;i<4;i++)
{
printf("%c ",a[i]);
}
printf("\n");
}
}


return 0;
}