qq_33974536 于 2016.02.14 15:50 提问

#include
#include
#include
#define MAX 101

int Long(char a[],char b[],char result[] )
{

int m,n;

``````m=strlen(a);
n=strlen(b);
int str[MAX][MAX];
int i,j,sum;

for(i=0;i<=m;i++)
{
str[i][0]=0;
}
for(i=0;i<=n;i++)
{
str[0][i]=0;
}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
if(a[i-1]==b[j-1])
{
str[i][j]=str[i-1][j-1]+1;
}
else if(str[i-1][j]<str[i][j-1])
{
str[i][j]=str[i][j-1];
}
else
{
str[i][j]=str[i-1][j];
}

}
}

sum=str[m][n];
return sum;
result[sum]='\0';
while(sum>=1)
{
if(a[m-1]==b[n-1])
{

result[--sum]=a[m-1];
m--;
n--;

}
else if(str[m-1][n]<str[m][n-1])
{

n--;
}
else
{
m--;
}
}
``````

}

int main(void)
{
char a[MAX],b[MAX];
char result[MAX];
int i;
printf("请输入数组a:\n");
gets(a);
printf("请输入数组b:\n");
gets(b);

``````Long(a,b,result);
printf("%d\n",Long(a,b,result));
printf("%s",result);

system("PAUSE");
return 0;
``````

}

4个回答

caozhy      2016.02.14 19:22

`````` #include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 101

char * t;
int * i;

int cmp(const void * p, const void * q)
{
return strcmp(&t[*(int *)p], &t[*(int *)q]);
}

void Long(char* a, char* b, char ** c)
{
t = new char[strlen(a) + strlen(b) + 2];
strcpy(t, a);
t[strlen(a)] = '#';
strcpy(t + strlen(a) + 1, b);
i = new int[strlen(a) + strlen(b) + 1];
for (int j = 0; j < strlen(a) + strlen(b) + 1; j++) i[j] = j;
qsort(i, strlen(a) + strlen(b) + 1, sizeof(int), cmp);
int ma = 0;
*c = (t + i[0]);
for (j = 1; j < strlen(a) + strlen(b) + 1; j++)
{
int h = 0;
char * l = &t[i[j - 1]];
char * m = &t[i[j]];
if ((i[j - 1] > strlen(a) && i[j] < strlen(a)) || (i[j] > strlen(a) && i[j - 1] < strlen(a)))
{
while (*l == *m && (*l) !='#' && (*m) !='#')
{
h++;
l++;
m++;
}
if (h > ma)
{
ma = h;
*c = (t + i[j]);
}
}
}
(*c)[ma] = '\0';
}

int main(void)
{
char a[MAX], b[MAX];
printf("请输入数组a:\n");
gets(a);
printf("请输入数组b:\n");
gets(b);
char * c;
Long(a,b,&c);
printf("%s\n", c);
return 0;
}
``````
caozhy      2016.02.14 18:09

haaaaaaaaaghhhhahhhhhhhhhhhhhhhhhha

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
23
Press any key to continue . . .

li980ex   2016.02.26 21:44

91program      2016.02.14 18:32

91program 回复caozhy: 孙子，你会使用搜索引擎大家都知道的，不用担心，你还是“大牛”。使用搜索引擎的大牛！！！

91program 回复caozhy: 孙子曹，你又来找骂！爷爷说过你跟我的回复一下、爷爷就骂一次。这是我对你的“承诺”！无论我的回答正确与否，也无论你的跟的正确与否。

91program 回复caozhy: 孙子，只准你使用搜索引擎，就不许我直接给搜索引擎结果！

caozhy 请管理员删除无用的垃圾回复