题解 | #字符串加密#

字符串加密

https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3?tpId=37&tags=&title=&difficulty=0&judgeStatus=0&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D37%26type%3D37

#include <deque>
#include <iostream>
#include <set>
#include <string>
using namespace std;

/*
HJ20 HJ21 HJ29 HJ30 HJ36 都是与密码相关的问题
程序思路:目标是构建两个一一对应的字符串
    一个是 26位字母表
    一个是 输入中的字符串按照题目要求的方法得出的字符串 str2.
    题目的关键也是构建 str2.

如何构建str2?
    1. 遍历字符串
    2. 通过set集合去除字符串中重复元素
    3. 通过deque 双端队列保持字母的相对位置不变
    4. 这样就将单词中包含有重复的字母,只保留第1个,将所得结果作为新字母表开头,
    5. 之后再补上后面缺少的单词
*/ 
int main() {
    string key, str;
    cin >> key;
    cin >> str;

    string src = "abcdefghijklmnopqrstuvwxyz";
    string enc;

    deque<char> dq;// 保持字母相对位置不变
    set<char> st; // 去重

    // 遍历密钥字符串
    for (auto c : key) {
        if (st.count(c) == 0) {
            st.insert(c);
            dq.push_back(c);;
        }
    }

    while (!dq.empty()) {
        enc += dq.front();
        dq.pop_front();
    }

    // 字母表中剩余的字母填充完整
    for (char c = 'a'; c <= 'z'; c++) {
        if (st.count(c) == 0) {
            enc += c;;
        }
    }

    string ans;
    for (auto c : str) {
        ans += enc[src.find_last_of(c)];
    }
    cout << ans << endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-15 10:59
已编辑
美团_后端开发(实习员工)
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
10656次浏览 93人参与
# 你的实习产出是真实的还是包装的? #
1901次浏览 42人参与
# 米连集团26产品管培生项目 #
5962次浏览 216人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7571次浏览 43人参与
# 简历第一个项目做什么 #
31669次浏览 336人参与
# 重来一次,我还会选择这个专业吗 #
433453次浏览 3926人参与
# MiniMax求职进展汇总 #
24039次浏览 309人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187114次浏览 1122人参与
# 牛客AI文生图 #
21423次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152357次浏览 888人参与
# 研究所笔面经互助 #
118900次浏览 577人参与
# 简历中的项目经历要怎么写? #
310233次浏览 4212人参与
# AI时代,哪些岗位最容易被淘汰 #
63652次浏览 823人参与
# 面试紧张时你会有什么表现? #
30506次浏览 188人参与
# 你今年的平均薪资是多少? #
213079次浏览 1039人参与
# 你怎么看待AI面试 #
180040次浏览 1255人参与
# 高学历就一定能找到好工作吗? #
64325次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76490次浏览 374人参与
# 我的求职精神状态 #
448050次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363390次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160641次浏览 1111人参与
# 校招笔试 #
470914次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务