题解 | 字符串加密

字符串加密

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将小写字符转成大写字符;

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务