QBSTR - Xâu con chung dài nhất
Tác giả: skyvn97
Ngôn ngữ: C++
#include<stdio.h>
#include<string.h>
#define MAX 1000
char a[MAX];
char b[MAX];
int opt[MAX][MAX];
int i,j;
int max(int x,int y,int z)
{
int min=x;
if (min<y) min=y;
if (min<z) min=z;
return (min);
}
int main(void)
{
gets(a);
gets(b);
for (i=0;i<strlen(a);i=i+1)
for (j=0;j<strlen(b);j=j+1)
{
if (a[i]==b[j]) opt[i+1][j+1]=opt[i][j]+1;
else opt[i+1][j+1]=max(opt[i][j],opt[i][j+1],opt[i+1][j]);
}
printf("%d",opt[strlen(a)][strlen(b)]);
}