65,187
社区成员




#include<iostream>
#include<cstring>
using namespace std;
int main(){
char v[100],e[100],w[101],k[26]; //v是信息,e是加密信息,w是待解密信息。
memset(k,0,sizeof(k));
memset(w,0,sizeof(w));
int i,len,tmp,ecnt=0;
cin>>e>>v>>w;
len=strlen(e);
if(len<26){
cout<<"Failed";
return 0;
}
for(i=0;i<len;i++){
tmp=e[i]-'A';
if(k[tmp]==0){
k[tmp]=v[i];
ecnt+=1;
}else if(k[tmp]!=v[i]){
cout<<"Failed";
return 0;
}
}
if(ecnt!=26){
cout<<"Failed";
return 0;
}
len=strlen(w);
for(i=0;i<len;i++){
w[i]=k[w[i]-'A'];
}
cout<<w;
}
#include<iostream>
using namespace std;
int main()
{
char v[101],e[101],w[101],k[26],o[101]; //v是信息,e是加密信息,w是待解密信息。
memset(v,0,sizeof(v));
memset(k,0,sizeof(k));
memset(w,0,sizeof(w));
memset(o,0,sizeof(o));
cin>>e>>v>>w;
if (strlen(e)==strlen(v))
{
bool good=true;
//构造密码表
for (int i=0;i<strlen(e);i++)
{
int tmp=e[i]-'A';
if (k[tmp]!=0&&k[tmp]!=v[i])
{
//存在重复码
good=false;
break;
}
k[tmp]=v[i];
}
if (good)
{
//解密
for (int i=0;i<strlen(w);i++)
{
if (k[w[i]-'A'])
o[i]=k[w[i]-'A'];
else
{
good=false;
break;
}
}
if (good)
{
cout<<o<<endl;
return 1;
}
}
}
cout<<"Failed"<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
char v[101],e[101],w[101],k[26]; //v是信息,e是加密信息,w是待解密信息。
memset(v,0,sizeof(v));
memset(k,0,sizeof(k));
memset(w,0,sizeof(w));
cin>>e>>v>>w;
if (strlen(e)==strlen(v))
{
bool good=true;
//构造密码表
for (int i=0;i<strlen(e);i++)
{
int tmp=e[i]-'A';
if (k[tmp]!=0&&k[tmp]!=v[i])
{
//存在重复码
good=false;
break;
}
k[tmp]=v[i];
}
if (good)
{
//解密
for (int i=0;i<strlen(w);i++)
cout<<k[w[i]-'A'];
cout<<endl;
return 1;
}
}
cout<<"Failed"<<endl;
return 0;
}
for(i=0;i<len;i++){
t=e[i]-'A';
th=v[i]-'A';
if((k[t]==0) && (kh[th]==0)){
k[t]=v[i];
kh[th]=e[i];
ecnt+=1;
}else if((k[t]!=v[i]) || (kh[th]!=e[i])){
cout<<"Failed";
return 0;
}
}