密码翻译,最近小明整理海牛国的一些文献

密码翻译
描述

最近小明正在整理海牛国的一些文献,由于这些文献和战争有关,都是加密的,于是小明想能不能够通过一些已经解密过的内容来推敲出加密规律,请你帮助小明完成这个任务,给你三个字符串x,y,z;其中y是x加密过后的内容,例如x =“ABC”,y=”XYZ”,那么X解密后是A,Y解密后是B,Z解密后是C,z是待解密的机密文件

day09-03.zip

输入
三行,每行一个字符串,发别是x,y,z(长度小于等于100,只有大写字母)

输出
一个字符串,表示解密后的结果。如果无法翻译,则输出-1.

输入样例 1

ABCDEFG
HIJKLMN
JKL
输出样例 1

CDE
输入样例 2

QWERTYUIOPASDFGHJKLZXCVBN
NBVCXZLKJHGFDSAPOIUYTREWQ
CSP
输出样例 2

RFH
输入样例 3

QWER
ASDFG
ASX
输出样例 3

-1

#include <iostream>
#include <string>
using namespace std;
string decrypt(const string& x, const string& y, const string& z) {
    string decrypted = "";
    for (char c : z) {
        size_t index = y.find(c);
        if (index == string::npos) {
            return "-1";
        }
        decrypted += x[index];
    }
    return decrypted;
}

int main() {
    string x, y, z;
    cin >> x >> y >> z;
    string result = decrypt(x, y, z);
    cout << result << endl;
    return 0;
}

【以下回答由 GPT 生成】

def decrypt(x, y, z):
    # 创建一个字典,存储x和y的对应关系
    mapping = {}
    for i in range(len(x)):
        mapping[y[i]] = x[i]

    decrypted = ""
    for char in z:
        if char not in mapping:
            return -1
        decrypted += mapping[char]

    return decrypted

解释:首先根据给定的x和y,创建一个字典,将x和y的对应关系存储在字典中。然后遍历待解密的机密文件z,将每个字符在字典中查找对应的解密字符,并依次拼接起来。如果待解密的字符在字典中找不到对应关系,则返回-1。最后返回解密后的结果。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632