wo zi ji de mei you kao lv congfu de xian xian
/*************************************************************************
> File Name: 10098.cpp
> Author: ma6174
> Mail: ma6174@163.com
> Created Time: 2015年11月30日 星期一 15时36分07秒
************************************************************************/
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
int t;
char str[1050];
using namespace std;
int num[10];
int maxn=10;
int x=1;
void chushi()
{
int i;
for(i=0;i<maxn;i++)
num[i]=i+1;
}
void put()
{
int i;
for(i=0;i<maxn;i++)
cout<<str[num[i]-1];
cout<<endl;
}
void jiaohuan(int min,int max)//将下标max的移动到下标为min,1234,移动后4123
{
int i;
int temp=num[max];
for(i=max;i>min;i--)
num[i]=num[i-1];
num[min]=temp;
}
void jiaohuan2(int min,int max)//还原
{
int i;
int temp=num[min];
for(i=min;i<max;i++)
num[i]=num[i+1];
num[max]=temp;
}
void paixu(int fanwei)//范围内排序
{
if (fanwei==1)
{
put();
return;
}
int i;
for(i=maxn-fanwei;i<maxn;i++)//范围内依次将数据移到首位
{
jiaohuan(maxn-fanwei,i);
paixu(fanwei-1);
jiaohuan2(maxn-fanwei,i);
}
}
int cmp(const void *a,const void *b);
int main()
{
maxn=3;//设置排的数
//scanf("%d",&maxn);
cin>>t;
t+=1;
int T=0;
while(t--){
//shuru();
gets(str);
if(T+1) printf("\n");
maxn=strlen(str);
qsort(str,maxn,sizeof(str[0]),cmp);
chushi();
paixu(maxn);
if(T)
printf("\n");
T++;
//printf("\n");
}
return 0;
}
int cmp(const void *a,const void *b){
return strcmp((char *)a,(char *)b);
}
bie ren de
#include<cstdio>
#include<cstring>
#include<cstdlib>
char s[15], a[15];
int len;
int cmp( const void *_p, const void *_q)
{
char *p = ( char *)_p;
char *q = ( char *)_q;
return *p - *q;
}
void dfs( int cur)
{
if( cur == len)
printf( "%s\n", a);
else for( int i = 0; i < len; i ++)
if( !i || s[i] != s[i - 1])
{
int c1 = 0, c2 = 0;
for( int j = 0; j < cur; j ++) if( a[j] == s[i]) c1 ++;
for( int j = 0; j < len; j ++) if( s[i] == s[j]) c2 ++;
if( c1 < c2)
{
a[cur] = s[i];
dfs(cur + 1);
}
}
}
int main()
{
int tt;
scanf( "%d", &tt);
while( tt --)
{
scanf( "%s", s);
len = strlen( s);
memset( a, 0, sizeof a);
qsort( s, len, sizeof( char), cmp);
dfs( 0);
printf( "\n");
}
return 0;
}