思路:经典的LCS问题,只是把字母改成了字符串而已
//228K
0MS
#include <stdio.h>
#include <string.h>
#define M 105
char
s1[M][35],s2[M][35];
//s1记录text1的每个word s2 记录text2的每个word
char
ans[M][35];
//ans 保存最后的结果
char
b[M][M];
//b[][]记录路径
int n,m,num;
void print (int i,int
j)
//递归找出ans 算导上的方法
{
0||j == 0)
return ;
== '#')
print (i - 1,j - 1);
strcpy (ans[num ++],s1[i]);
(b[i][j] == 'U')
print (i - 1,j);
print (i,j - 1);
}
void DP ()
{
i,j;
c[M][M];
< M;i ++)
c[i][0] = c[0][i] = 0;
<= n;i ++)
for (j = 1;j <= m;j ++)
{
if (strcmp (s1[i],s2[j]) == 0)
{
c[i][j] = c[i-1][j-1] + 1;
b[i][j] =
'#';
//# 号代比左上方
}
else
{