问答题

生物学上通常采用编辑距离来定义两个物种DNA序列的相似性,从而刻画物种之间的进化关系。具体来说,编辑距离是指将首将一个字符串变换为另- 一个字符所需要的最小操作次数。操作有三种,分别为:插入-一个字符、删除一一个字符以及将一个字符修改为另 -一个字符。用字符数组str1和str2分别表示长度分别为len1和len2的字符串,义二维数组d记录求解编辑距离的子问题最优解,则该二维数组可以递归定义为:

【C代码】

下面是算法的C语言实现。
(1)常量和变量说明
A,B:两个字符数组
d:二维数组
i,j:循环变量
temp:临时变量
(2)C程序

#includestdio.h>

#define N 100

char A[N]="CTGA";

char B[N]="ACGCTA";

int d[N][N];

int min(int a, int b){

        return a b ? a: b;

}


int editdistance(char *str1, int len1, char *str2, int len2){

        int i, j;

        int diff;

    int temp;

    for(i=0; i=len1; i++){

            d[i][0]=I;

}

for(j=0; j=len2; j++){

(1);

}

for(i=1;i=len1;i++){

      for(j=1; j

【正确答案】(1)d[0][j]=j(2)str1[i-1]==str2[j-1](3)d[i-1][j-1]+1(4) d[len1][len2]
【答案解析】