题解 | #字符串加密#
字符串加密
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;
}