#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n,cnt=0;
char a[20];
void dfs(int k){
if(k==n) { cnt++; puts(a); return; }
for(int i=k;i<n;i++){
int j;
for(j=k;j<i;j++) if(a[j]==a[i]) break;
if(j!=i) continue;
swap(a[k],a[i]);
dfs(k+1);
swap(a[k],a[i]);
}
}
int main(){
//freopen("a.in","r",stdin);
scanf("%d%s",&n,a);
dfs(0);
printf("%d\n",cnt);
return 0;
}
含重复元素的全排列
C++排列输出与计数
最新推荐文章于 2022-05-02 01:36:14 发布
本文介绍了一个使用C++实现的递归算法,该算法能够输出字符串的所有可能排列并计数。通过交换字符位置的方法生成不同的排列组合,并避免了重复输出相同排列。
2130

被折叠的 条评论
为什么被折叠?



