#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    string str1,str2;
    cin>>str1>>str2;
    char a[27];
    bool b[27];
    memset(b, 0, sizeof b);
    int cnt=0;
    string s1,s2;

    //jingen

    for(int i=0;i<str1.length();i++)
    {
        int j=str1[i]-'a';
        if(!(b[j]))
        {
            b[j] = true;
            a[cnt++]=str1[i];
        }
    }

    for(int i=0;i<27;i++)
    {
        if(!b[i])
        {
            a[cnt++]=char(i+'a');
        }
    }

    for(int i=0;i<str2.length();i++)
    {
        cout<<a[str2[i]-'a'];
    }

    return 0;
}

由题目可知,是对字符串进行加密,首先处理str1 对其进行去重(由于数据范围较小直接用for循环,可用set直接去重),后补齐未出现的字母,将这串密码用数组a储存,(按ascii码进行存储),后读取需加密的字符串,根据acsii码对映a数组的位置。参与链接