题解 | 字符串加密
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
#include <iostream>
#include <string>
#include <map>
#include <set>
using namespace std;
map<char, char> m;
string pat = "abcdefghijklmnopqrstuvwxyz";
void init(string s) {
set<char> isexist;
string p;
for (auto elem : s) {
if (isexist.count(elem) == 0) {
p += elem;
isexist.insert(elem);
}
}
// 补齐p
for (auto elem : pat) {
if (isexist.count(elem) == 0) {
p += elem;
isexist.insert(elem);
}
}
// 生成映射
char ch = 'a';
for (auto elem : p) {
m[ch++] = elem;
}
}
int main() {
string str;
cin >> str;
init(str); // 根据str计算出模式串p,然后再得到映射关系的map
string res;
cin >> res;
for (auto& elem : res) {
elem = m[elem];
}
cout << res << endl;
return 0;
}

