【題解】ZeroJudge e501: 00865 – Substitution Cypher

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=e501
【解題想法】STL map

  • ⚠️注意:測資有「多列」待加密的資料且包含空白字符。用getline(cin, s)讀入資料。
#include <iostream>
#include <map>
using namespace std;

int main() {
    string s1, s2, s;
    int T;
    cin >> T;
    getline(cin, s); //clear buffer
    getline(cin, s); //blank line
    while (T--){
        getline(cin, s1);
        getline(cin, s2);
        map <char, char> mp;
        for (int i = 0; i < s1.size(); i++){
            mp[s1[i]] = s2[i];
        }
        cout << s2 << "\n";
        cout << s1 << "\n";
        while (getline(cin, s) && s != ""){
            for (int i = 0; i < s.size(); i++){
                if (mp.count(s[i])) cout << mp[s[i]];
                else cout << s[i];
            }
            cout << "\n";
        }
    }
    return 0;
}
分享本文 Share with friends