递归求两个串最大公共子序列长度
#include <stdio.h>
#include <string.h>
int maxstr(int n,int m)
{
if(n>m)
return n;
else
return m;
}
char * substring(char *a)
{
char *b;
b=&a[1];
return b;
}
int f(char a[],char b[])
{
if(strlen(a)==0 || strlen(b)==0)
return 0;
if(a[0]==b[0])
{
return f(substring(a),substring(b))+1;
}
else
{
return maxstr(f(a,substring(b)),f(substring(a),b));
}
}
int f(int a)
{
if(a>1)
return f(a-1);
}
int main()
{
char a[]="sdfghjkl";
char b[]="qweuszxfcbxngmhvkl";
int x=f(a,b);
printf("最大公共子序列长度为:%d",x);
return 0;
}