比赛 |
20190908之惊鸿 |
评测结果 |
AAAAAAAAAA |
题目名称 |
潜伏者 |
最终得分 |
100 |
用户昵称 |
李俊辉 |
运行时间 |
0.004 s |
代码语言 |
C++ |
内存使用 |
4.40 MiB |
提交时间 |
2019-09-09 21:01:54 |
显示代码纯文本
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N=100;
const int M=26;
char s1[N+5],s2[N+5],s3[N+5];
int len1,len2,len3;
int map[M+1];
int main()
{
freopen("spy.in","r",stdin);
freopen("spy.out","w",stdout);
memset(map,-1,sizeof(map));
scanf("%s",s1);
scanf("%s",s2);
scanf("%s",s3);
len1=strlen(s1),len2=strlen(s2),len3=strlen(s3);
for(int i=0;i<=len1-1;i++)
{
if(map[s1[i]-'A']!=-1&&map[s1[i]-'A']!=s2[i]-'A')//没有一个下标对应两个字母的情况
{
printf("Failed");
return 0;
}
map[s1[i]-'A']=s2[i]-'A';
}
for(int i=0;i<=24;i++)
for(int j=i+1;j<=25;j++)
if(map[i]==map[j])//没有两个字母对应一个下标的情况
{
printf("Failed");
return 0;
}
for(int i=0;i<=25;i++)//26个字母要集齐
if(map[i]==-1)
{
printf("Failed");
return 0;
}
for(int i=0;i<=len3-1;i++)
printf("%c",map[s3[i]-'A']+'A');
return 0;
}