题解 | 字符串加密
字符串加密
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将小写字符转成大写字符;