最长公共子序列(递归版)
#include <iostream>
using namespace std;
#define MAXSTRLEN 200
//递归算法求解最长公共子序列的长度
int Lcs(char *str1, char *str2)
{
if(*str1=='\0' || *str2=='\0')
{
return 0;
}
if(*str1==*str2)
{
return Lcs(str1+1, str2+1)+1;
}
else
{
if(Lcs(str1+1, str2)>Lcs(str1, str2+1))
{
return Lcs(str1+1, str2);
}
else
{
return Lcs(str1, str2+1);
}
}
}
int main()
{
char a[MAXSTRLEN];
char b[MAXSTRLEN];
gets(a);
gets(b);
cout<<Lcs(a, b)<<endl;
return 0;
}