题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
#include <iostream> #include<vector> #include<string> #include<unordered_map> using namespace std; int main() { string s; string tmp; getline(cin, s); cin >> tmp; unordered_map<char, int> mp; vector<char> dic; //密码表 //建立密码表: for(int i = 0; i < s.size(); i ++){ //加入已有的 if(mp.count(s[i])) continue; else{ dic.push_back(s[i]); mp[s[i]] ++; } } for(int i = 0; i < 26; i ++){ //加入其他的字母 if(mp.count('a' + i)) continue; else{ dic.push_back('a' + i); mp['a' + i] ++; } } string res = ""; for(int i = 0; i < tmp.size(); i ++){ if(tmp[i] >='A' && tmp[i] <= 'Z'){ //大写字母处理 char c = toupper(dic[tmp[i] - 'a']); res += c; } else{ char c = dic[tmp[i] - 'a']; res += c; } } cout << res << endl; return 0; }
思路对就能一遍跑过,自己又秒一题,nice!