洛谷 P1071潜伏者题解--zhengjun
思路
一看就是一道模拟。
注意一下细节就可以了。
代码
#include<bits/stdc++.h>
using namespace std;
string a,b,c;
int x[26],y[26];//分别从两边映射
int main(){
cin>>a>>b>>c;
memset(x,-1,sizeof(x));
memset(y,-1,sizeof(y));
for(int i=0;i<a.length();i++){
int n=b[i]-'A',m=a[i]-'A';
if((x[n]!=-1&&x[n]!=m)||(y[m]!=-1&&y[m]!=n)){//出现一个不匹配就不行
printf("Failed");
return 0;
}
x[n]=m;
y[m]=n;
}
for(int i=0;i<26;i++){
if(x[i]==-1||y[i]==-1){//还没有出现
printf("Failed");
return 0;
}
}
for(int i=0;i<c.length();i++){
printf("%c",y[c[i]-'A']+'A');//直接映射回去
}
return 0;
}