AC

 •  14天前


#include <bits/stdc++.h>
using namespace std;
map<int, int> hx,rev_hx;                       
string s1, s2, s;              
int flag = 0, tot = 0;          

int main() {
    cin >> s2 >> s1 >> s;        

    for (int i = 0; i < s1.size(); i++) {
        int ch2 = (int)s2[i];    
        int ch1 = (int)s1[i];   

        if (hx.find(ch2) == hx.end()) {
            
            if (rev_hx.find(ch1) != rev_hx.end()) {
                cout << "Failed";
                return 0;
            }
            hx[ch2] = ch1;      
            rev_hx[ch1] = ch2;   
            tot++;
        } else {
            
            if (hx[ch2] != ch1) {
                cout << "Failed";
                return 0;
            }
        }
    }

    if (tot < 26) {
        cout << "Failed";
    } else {
        for (int i = 0; i < s.size(); i++) {
            int val = (int)s[i];
            char verb = (char)hx[val];
            cout << verb;
        }
    }
    return 0;
}
    

评论:

请先登录,才能进行评论