LCS[i][j] = LCS[i-1][j-1] + 1; if a[i] = b[j];
else LCS[i][j] = 0;
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
const int max_len = 20;
void LCS(char a[], char b[])
{
if (a == NULL || b == NULL)
return;
int c[max_len][max_len];
int i, j, alen, blen, maxlcs, pos;
maxlcs = 0;
pos = 0;
alen = strlen(a);
blen = strlen(b);
if (alen > max_len || blen > max_len)
return;
for (i = 0; i < max_len; i++)
for (j = 0; j < max_len; j++)
c[i][j] = 0;
for (i = 1; i <= alen; i++)
for (j = 1; j <= blen; j++)
{
if (a[i - 1] == b[j - 1])
c[i][j] = c[i-1][j-1] + 1;
else
c[i][j] = 0;
if (maxlcs < c[i][j])
{
maxlcs = c[i][j];
pos = j - 1;
}
}
cout<<"maxlcs:"<<maxlcs<<endl;
cout<<"pos: "<<pos<<endl;
for (i = 0; i < maxlcs; i++)
cout << b[pos - maxlcs + i + 1]<< " ";
}
int main(void)
{
char a[] = "fghxyzkkkk";
char b[] = "efghxyzkkkkk";
LCS(a,b);
return 1;
}