//好不容易AC了……这些“水题”都是什么天外来客啊Orz
题目大意是古代密码。给出一段密文一段原文判断二者是否是对应的。
这题的坑,那可真是,太多了……
只要真正理解题意,这题就真是毫无技术含量的水题……可难也就难在题意上。被思维定势限制了。
密文是经过替代加密与调换顺序而成的。可是这替代不是所有字母统一平移。只要保证替代后仍然有一一对应关系即可。
统计两边的字母出现频率排序,比较相等就能解决。
奇葩的是我冒泡排序写反了测试了半天还没错误。呵呵= =
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,temp,flag=1,m[50],n[50];
char text[200],code[200];
memset(m,0,sizeof(m));
memset(n,0,sizeof(n));
scanf("%s",code);
scanf("%s",text);
for(i=0;i<strlen(text);i++)
m[text[i]-'A']++;
for(i=0;i<strlen(code);i++)
n[code[i]-'A']++;
for(i=0;i<30;i++)
for(j=i+1;j<26;j++)
if(m[i]<m[j])
{
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
for(i=0;i<30;i++)
for(j=i+1;j<26;j++)
if(n[i]<n[j])
{
temp=n[i];
n[i]=n[j];
n[j]=temp;
}
for(i=0;i<30;i++)
if(m[i]!=n[i])
flag=0;
if(flag)
printf("YES");else
printf("NO");
return 0;
}
//~~~~(>_<)~~~~ 最后代码是在mad状态下改的,风格不太好