Advertisement

最长公共子序列问题的动态规划实现

阅读量:

最长公共子序列问题:
当给定一个序列X={x1,x2,…,xm},若存在另一个序列Z={z1,z2,…,zk},其满足存在一组严格递增的下标{i1,i2,…,ik},使得对于任意j=1,2,…,k均有zj=xij,则称Z为X的子序列。例如,序列Z={B,C,D,B}可以被视为序列X={A,B,C,B,D,A,B}的一个子序列,并且对应的下标序列为{2,3,5,7}。
在给定两个序列X与Y的情况下,若某一序列Z同时为X与Y的子序列,则称该序列为X和Y的公共子序列。现针对两个特定序列X={x1,x2,…,xm}与Y={y1,y2,…,yn},目标是确定它们之间的最长公共子序列。

复制代码
    #include<stdio.h>
    #include<string.h>
    #define MAXLEN 100
     
    void LCSLength(char *x,char *y,int m, int n,int c[][MAXLEN],int b[][MAXLEN])
    {
    int i,j;
    	for(i=0;i<=m;i++){
    	    c[i][0]=0;
    	}
    	for(j=1;j<=n;j++){
    	    c[0][j]=0;
    	}
    	for(i=1;i<=m;i+

全部评论 (0)

还没有任何评论哟~