1.。。。。//暴力求解
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
const int maxn=1000005;
char s1[30],s2[maxn];
char str[maxn];
int main()
{
int kase;
scanf("%d",&kase);
while(kase--)
{
int val[200];
scanf("%s %s",s1,s2);
for(int i=0;s1[i]!=0;i++)//查找密文对应的原文
val[s1[i]]='a'+i;
// cout<<val['q'-'a']<<"\n"<<"*********************"<<endl;
//将s2的前缀与再次加密后的后缀进行比较、
int len=strlen(s2),mid;
if(len%2) mid = len/2; else mid=len/2-1;
//len&1是什么意思
int start=0;
for(int i=mid;i<len;i++){
bool ok=true;
for(int k=0,j=i+1;j<len;k++,j++){
if(val[s2[k]]!=s2[j]){
ok=false; break;
}
}
if(ok) {start=i;break;}
}
//cout<<start<<endl;
//cout<<"8********************"<<endl;
memset(str,0,sizeof(str));
for(int i=0;i<=start;i++) str[i]=s2[i];
memset(str,0,sizeof(str));
for(int i=0;i<=start;i++) str[i]=s2[i];
for(int i=start+1,k=0;k<=start;i++,k++)
str[i]=val[s2[k]];
puts(str);
}
}