PersonalCorpus 版 (精华区)
904309 2002/06/15 09:07:01.053
Big Guava ... 468 C++ Accepted 0:00.440 500
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
int isletter(char c)
{
if (((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z'))) return 1; else
return 0;
}
void main()
{
#ifndef ONLINE_JUDGE
freopen("c:\\uva\\input468.txt","r",stdin);
freopen("c:\\uva\\output468.txt","w",stdout);
#endif
char a[50000],b[50000];
int fa[128],fb[128];
char sa[128],sb[128],change[128];
int i,j,k,n;
scanf("%d\n",&n);
while (n>0) {
n--;
gets(a); gets(b);
memset(fa,0,sizeof(fa));
memset(fb,0,sizeof(fb));
for (i=0;i<strlen(a);i++) if (isletter(a[i])) fa[a[i]]++;
for (i=0;i<strlen(b);i++) if (isletter(b[i])) fb[b[i]]++;
for (i=0;i<128;i++) { sa[i]=i; sb[i]=i; }
for (i=0;i<127;i++)
for (j=i+1;j<128;j++) {
if (fa[i]<fa[j]) {
k=fa[i]; fa[i]=fa[j]; fa[j]=k;
k=sa[i]; sa[i]=sa[j]; sa[j]=k;
}
if (fb[i]<fb[j]) {
k=fb[i]; fb[i]=fb[j]; fb[j]=k;
k=sb[i]; sb[i]=sb[j]; sb[j]=k;
}
}
for (i=0;i<128;i++) change[sb[i]]=sa[i];
for (i=0;i<strlen(b);i++)
if (isletter(b[i])) putchar(change[b[i]]); else
putchar(b[i]);
printf("\n");
// 这样会P.E. ,faint.....
// if (n>0) { printf("\n"); gets(a); }
printf("\n"); gets(a);
}
}
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.049毫秒