刚开始没看懂题目。。
后来才明白。
#include"stdio.h"
#include"string.h"
int main()
{
int T;
int n;
int i,j;
char s[1001],ss[1001];
char str[10][11];
int a[10];
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
getchar();
for(i=0;i<8;i++)
scanf("%s%d",str[i],&a[i]);
getchar();
gets(s);
puts(s);
n--;
while(n--)
{
for(i=0;s[i];i++)
{
for(j=0;j<8;j++)
{
if(i==0)
{
if(str[j][0]=='0'&&str[j][1]==s[i]&&str[j][2]==s[i+1])
{
ss[i]=a[j]+'0';break;
}
}
else if(s[i+1]==0)
{
if(str[j][0]==s[i-1]&&str[j][1]==s[i]&&str[j][2]=='0')
{
ss[i]=a[j]+'0';break;
}
}
else
{
if(str[j][0]==s[i-1]&&str[j][1]==s[i]&&str[j][2]==s[i+1])
{
ss[i]=a[j]+'0';break;
}
}
}
}
ss[i]=0;
puts(ss);
strcpy(s,ss);
}
}
return 0;
}