#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数组的位置。参与链接

京公网安备 11010502036488号