代码如下(加了些注释)qwq:
#include <iostream>
#include <cstring>
using namespace std;
int n; //原信息中出现的不同字符的个数
string yuanwen, mima, dianbao;
char mi[200], t; //mi是原文与密码的映射表
int main(){
memset(mi, '0', sizeof(mi)); //'0'表示没有被破解
cin >> yuanwen >> mima >> dianbao;
for(int i = 0; i < yuanwen.length(); i++){
t = yuanwen[i];
if(mi[t] == '0'){ //没有被破解
mi[t] = mima[i];
n++; //新的字符
} else {
if(mima[i] == mi[t]){
continue;
} else { //如果与上一次破解的不同
cout << "Failed" << endl; //不符合要求
return 0;
}
}
}
if(n != 26){ //如果没有26个字母
cout << "Failed" << endl; //不符合要求
return 0;
}
for(int i = 0; i < dianbao.length(); i++){
cout << mi[dianbao[i]]; //破解电报
}
cout << endl;
return 0;
}