使用一个set确保密钥中的字符只获取一次,创建一个key,密钥中的字符如果是第一次出现,则加入set和key中,然后将字母表中剩余的字母按顺序加入key中,之后对字符串进行加密并输出。
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
int main() {
string key;
string s;
cin >> key >> s;
set<char> letters;
string key_u;
for (char letter : key) {
if (letters.find(letter) == letters.end()) {
letters.insert(letter);
key_u += letter;
}
}
for (char letter = 'a'; letter <= 'z'; letter++) {
if (letters.find(letter) == letters.end()) {
key_u += letter;
}
}
for (char & letter : s) {
letter = key_u.at(letter - 'a');
}
cout << s;
return 0;
}
//vingemyvlsliijpisgxbg
// 64 位输出请用 printf("%lld")



京公网安备 11010502036488号