题解 | 字符串加密
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
#include <iostream>
#include <string>
#include <cctype>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string key,words;
while(cin >> key >> words){
vector<char> v;
//去重
for(int i = 0; i < key.length();i++){
key[i] = toupper(key[i]);
auto it = find(v.begin(),v.end(),key[i]);
if(it == v.end()){
v.push_back(key[i]);
}
}
//补全
for(char c = 'A'; c <= 'Z'; c++){
auto it = find(v.begin(),v.end(),c);
if(it == v.end()){
v.push_back(c);
}
}
//加密
string output = "";
for(int i = 0; i < words.length(); i++){
if(islower(words[i])){
output += v[words[i] - 'a'] + 32;
}else{
output += v[words[i] - 'A'];
}
}
cout << output << endl;
}
}
// 64 位输出请用 printf("%lld")
cctype这个库中的挺多函数还挺好用的,比如说isupper检查是否是大写字符;tolower将字符转成小写形式;同样的道理islower检查是否是小写字符,toupper将小写字符转成大写字符;
