全排列

来源:互联网 发布:整篇文章翻译软件 编辑:程序博客网 时间:2024/05/02 06:12


#include<iostream>#include<algorithm>#include<cstring>#include<stdio.h>using namespace std;const int N=100;char str[N],buffer[N];int  label[N]={0},sum,l;int perm(int p){int len=strlen(str),i,j;if(p==l)//l代表 最后的长度{++sum;printf("%s\n",buffer);return 1;}for( i=0;i<len;i++){if(!label[i]){for( j=i+1;j<len;++j)   if(str[i]==str[j]&&!label[j]) break;//去重if(j==len){label[i]=1;buffer[p]=str[i];Perm(p+1);label[i]=0;}}}}int main(){int text;cin>>text;while(text--){    memset(str,0,sizeof(str));    memset(buffer,0,sizeof(buffer));sum=0;scanf("%s",str);l=strlen(str); //排列的长度perm(0);cout<<sum<<endl;}}



0 0
原创粉丝点击