题解 | #字符串加密#

字符串加密

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

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
    // 输入密匙和待加密的字符串
    string key;
    cin >> key;
    string str;
    cin >> str;
    // 处理密匙,删除重复字母
    vector<int> lowerKeySet(26, 0);
    auto it = key.begin();
    while (it != key.end()) {
        if (isupper(*it)) {
            tolower(*it);
        }
        int temp = *it - 'a';
        if (lowerKeySet[temp] == 0) {
            lowerKeySet[temp]++;
            ++it;
        }
        else {
            key.erase(it);
        }
    }
    for (int i = 0; i < lowerKeySet.size(); i++) {
        if (lowerKeySet[i] == 0) {
            key.append(1, ('a' + i));
        }
    }
    // 使用密匙加密明文得到密文
    for (int i = 0; i < str.size(); i++) {
        str[i] = key[str[i] - 'a'];
    }
    cout << str << endl;
    
    return 0;
}
全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务