题解 | #字符串加密#

字符串加密

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

#include <iostream>
#include <string>

using namespace std;


string GetEncryptionTable(const string key)
{
    string encryptionTable {};
    int table[26] {}; // 下标表示a~z
    string fkey {};
    // 按顺序添加key上的字母
    for (auto ch : key) {
        table[ch - 'a'] ++;
        if (encryptionTable.find(ch) == encryptionTable.npos) {
            encryptionTable += ch;
        }
    }
    // 按顺序添加没在key上的字母
    for (int i = 0; i < 26; i++) {
        if (table[i] == 0) {
            encryptionTable += char('a' + i);
        }
    }
    
    return encryptionTable;
}

int main()
{
    string key {};
    string str {};
    cin >> key >>str;
    
    string encryptionTable = GetEncryptionTable(key);
    string res = str;
    for (auto& ch : res) {
        ch = encryptionTable[ch - 'a'];
    }
    
    cout << res <<endl;
    

    return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务