题解 | #字符串加密#
字符串加密
http://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
// 输入密匙和待加密的字符串
string key;
cin >> key;
string str;
cin >> str;
// 处理密匙,删除重复字母
vector<int> lowerKeySet(26, 0);
auto it = key.begin();
while (it != key.end()) {
if (isupper(*it)) {
tolower(*it);
}
int temp = *it - 'a';
if (lowerKeySet[temp] == 0) {
lowerKeySet[temp]++;
++it;
}
else {
key.erase(it);
}
}
for (int i = 0; i < lowerKeySet.size(); i++) {
if (lowerKeySet[i] == 0) {
key.append(1, ('a' + i));
}
}
// 使用密匙加密明文得到密文
for (int i = 0; i < str.size(); i++) {
str[i] = key[str[i] - 'a'];
}
cout << str << endl;
return 0;
}