1、因为通过率比较低,还以为过不了,没想到一次AC~
2、主要思路就是从底向上扫描,遇到不符合正常次序的就把count加上一,最后按第二张表倒序输出即可。具体见代码。
#include<stdio.h>
#include<string.h>#include<stdlib.h>
int main(void)
{
int K,n,i,j,count;
char s1[200+10][80+5];
char s2[200+10][80+5];
scanf("%d",&K);
while(K--)
{
scanf("%d",&n);getchar();
for(i=0;i<n;i++)
fgets(s1[i],85,stdin);
for(i=0;i<n;i++)
fgets(s2[i],85,stdin);
j=n-1;count=0;i=n-1;
while(j>=0)
{
while(i>=0&&strcmp(s1[i],s2[j])!=0)
{
i--;
count++;
}
while(j>=0&&i>=0&&strcmp(s1[i],s2[j])==0)
{
i--;j--;
}
if(i<0) break;
}
for(i=count-1;i>=0;i--)
printf("%s",s2[i]);
printf("\n");
}
return 0;
}