```cpp
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
string s1 ,s2 ,s3;
int a[N] ,f1[N] ,f2[N];
int main(){
cin >> s1 >> s2 >> s3;
for(int i = 0;i < s1.size();i++){
if((f1[s1[i] - 'A' + 1] == 1 && f2[s2[i] - 'A' + 1] != 1) || (f1[s1[i] - 'A' + 1] != 1 && f2[s2[i] - 'A' + 1] == 1)){
cout << "Failed";
return 0;
}
a[s1[i] - 'A' + 1] = s2[i] - 'A' + 1;
f1[s1[i] - 'A' + 1] = 1;
f2[s2[i] - 'A' + 1] = 1;
}
for(int i = 1;i <= 26;i++){
if(a[i] == 0){
cout << "Failed";
return 0;
}
}
for(int i = 0;i < s3.size();i++){
cout << (char)(a[s3[i] - 'A' + 1] + 'A' - 1);
}
return 0;
}
```
正常模拟做法
by 李卓修李卓修 @ 2023-02-18 15:23:02
```c
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
string s1,s2,s3;
int f1=0,f2=0,f3=0,f4=0,i,j,q='A',flag=0;
char mm[95]={0};
cin>>s1>>s2>>s3;
for(i=0;i<s1.size();i++)
{
if(!(s1[i]>='A'&&s1[i]<='Z'&&s2[i]>='A'&&s2[i]<='Z'))
{
cout<<"Failed";
return 0;
}
}
for(i='A';i<='Z';i++)
{
f2=0;
for(j=0;j<s2.size();j++)
{
if(i==s2[j])
{
f2=1;
}
}
if(f2==0)
{
cout<<"Failed";
return 0;
}
}
for(i=0;i<s1.size();i++)
{
if(mm[s1[i]]==s2[i]||mm[s1[i]]==0)
{
mm[s1[i]]=s2[i];
}
else
{
cout<<"Failed";
return 0;
}
}
for(i=0;i<s3.size();i++)
{
cout<<mm[s3[i]];
}
return 0;
}
```
一步步做就行了
by ysz20091211 @ 2023-07-04 19:51:52