题解 | #字符串加密#

字符串加密

https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

#include <cctype>
#include <iostream>
#include <string>
#include <vector>
#include<algorithm>
using namespace std;

int main() {
    string key;
    string words;
    cin >> key;
    cin >> words;

    vector<char> dict;

    for(char & i : key)  //遍历密钥key
    {
        i = toupper(i);
        auto it = find(dict.begin(),dict.end(),i);
        if(it == dict.end())
        {
            dict.push_back(i);
        }
    }

    for(char a = 'A';a <= 'Z';a++)
    {
        auto it = find(dict.begin(),dict.end(),a);
        if(it == dict.end())
        {
            dict.push_back(a);
        }
    }

    string outstr = "";
    for (int i = 0;i < words.size();i++)
    {
        if(islower(words[i]))
        {
            outstr += dict[words[i] - 'a'] + 32;  //dict中的索引值为0~25,words[i] - 'a'是找到对应在dict中的索引值,然后取出dict[words[i] - 'a']的大写字母,最后+32转换成小写字母。
       }
        else
        {
            outstr += dict[words[i] - 'A'];
        }
    }
        
    cout << outstr;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务