题解 | #字符串加密#

字符串加密

https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <unordered_map>
using namespace std;

int main(){   
    string key;
    string str;
    cin >>key >> str;
    vector<int>keyBucket(26);
    unordered_map<char, char> map;
    string alphabet = "abcdefghijklmnopqrstuvwxyz";
    string reAlphabet;
    // key去重
    for(char c : key){
        if( !keyBucket[c - 'a'] ){
            reAlphabet += c;
            keyBucket[c-'a']++;
        }
    }

// //     cout << "clear key : " << endl;
//     for(auto x : key)
//         cout << x;

    // 补全新字母表
    for(int i = 0; i < 26; i++){
        if( !keyBucket[i] )
            reAlphabet += i + 'a';
    }
//     cout << "new Alphabet: "<< endl;
//     for(auto x : reAlphabet)
//         cout << x ;

    // 新旧字母表映射
    for(int i = 0 ; i < 26; i++){
        map[alphabet[i]] = reAlphabet[i];
    }

//     cout << "alphabet map : " << endl;
//     for(auto x : map)
//         cout << x.first << ',' << x.second << endl;

    for(char cur : str)
        cout << map[cur];

}
全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务