///也可以用STL函数 #include<stdio.h> #include<stdlib.h> #include<string.h> #define LOCAL char s[15],res[15]; int len; int cmp(const void*_a,const void* _b) { char *a=(char*)_a; char *b=(char*)_b; return *a-*b; } void print(int cur) { int i,j,c1,c2; if(cur==len) printf("%s/n",res); else for(i=0;i<len;i++) { if(!i||s[i]!=s[i-1]) { c1=0;c2=0; for(j=0;j<len;j++) if(s[j]==s[i]) c1++; for(j=0;j<cur;j++) if(res[j]==s[i]) c2++; if(c2<c1) { res[cur]=s[i]; print(cur+1); } } } } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int n; scanf("%d",&n); while(n--) { scanf("%s",s); len=strlen(s); qsort(s,len,sizeof(s[0]),cmp); ///printf("---%s/n",s);//// memset(res,'/0',sizeof(res));////注意一定要要进行初始化 print(0); printf("/n"); } return 0; }