刚开始没看懂题目。。
后来才明白。
#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; }