LA 3213 Ancient Cipher

开始我理解错题意了,应该是这样理解的:

字符串1进行映射后可以做一个置换,若置换后与字符串2相同,也是输出YES的

比如ABCA 和 DDEF

因此我们需要做的就是统计有多少类字母,每一类有多少个,如果相同的话,两个字符串一定是对应的

 //#define LOCAL
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std; char s1[], s2[];
int a[], b[]; int main(void)
{
#ifdef LOCAL
freopen("3213in.txt", "r", stdin);
#endif while(scanf("%s%s", s1, s2) == )
{
memset(a, , sizeof(a));
memset(b, , sizeof(b));
int i;
for(i = ; s1[i] != '\0'; ++i)
{
++a[s1[i] - 'A'];
++b[s2[i] - 'A'];
}
sort(a, a + );
sort(b, b + );
for(i = ; i < ; ++i)
if(a[i] != b[i])
break;
if(i == )
printf("YES\n");
else
printf("NO\n");
}
return ;
}

代码君

上一篇:Scala IDE for Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)


下一篇:Xcode 的正确打开方式——Debugging(转)