| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
TLE阿,问问各位怎么改进阿,GCC#include <stdio.h>
#include <string.h>
char s[15];
int l;
char str[52]={'A','a','B','b','C','c','D','d','E','e','F','f','G','g','H','h','I','i',
'J','j','K','k','L','l','M','m','N','n','O','o','P','p','Q','q','R','r','S','s','T','t',
'U','u','V','v','W','w','X','x','Y','y','Z','z'};
void sort(){
int a[15],len,i,j;
char temp;
for(i=0;i<15;i++)
a[i]=-1;
len=l;
for(i=0;i<len;i++){
for(j=0;j<52;j++){
if(s[i]==str[j]){
a[i]=j;
break;
}
}
}
for(i=0;i<len;i++)
for(j=i;j<len;j++){
if(a[i]>a[j])
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
void swap(char *a,char *b){
char temp;
temp=*a;
*a=*b;
*b=temp;
}
void pailie(int key,int len){
int i;
if(key==l-1) printf("%s\n",s);
else{
for(i=key;i<l;i++){
if(s[i]==s[i+1])
{
continue;
}
swap(&s[key],&s[i]);
pailie(key+1,len-1);
swap(&s[key],&s[i]);
}
}
}
int main(){
int k,n;
scanf("%d",&n);
for(k=0;k<n;k++){
memset(s,'\0',15);
scanf("%s",s);
l=strlen(s);
if(l==1) printf("%s\n",s);
else{
sort();
//printf("\n%s\n",s);
pailie(0,l-1);
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator