#include <stdio.h>
#include <stdlib.h>
#define MAXCHAR 256
/*
* 把坏子串的下一跳找出来
* */
void pre_process(char *patt, int m, int bm_bc[]){
int k = 0;
for ( k = 0; k < MAXCHAR; k++ ){
bm_bc[k] = m;
printf("bm_bc[%d]=%d \n", k, bm_bc[k]);
}
//最后一次字符的值不需要计算,保留默认值m,或者使用0 ~ (m-1)内计算到的值
for ( k = 0; k < m-1; k++ ){
bm_bc[patt[k]] = m - k -1;
printf("bm_bc[patt[%d]] = %d char=%c\n", patt[k], bm_bc[patt[k]], patt[k]);
}
printf("bm_bc[patt[%d]]=%d \n", 'G', bm_bc['G']);
printf("bm_bc[patt[%d]]=%d \n", 'T', bm_bc['T']);
printf("bm_bc[patt[%d]]=%d \n", 'A', bm_bc['A']);
printf("bm_bc[patt[%d]]=%d \n", 'C', bm_bc['C']);
}
int BMH(char *src, int n, char *des, int m){
int bm_bc[MAXCHAR] = {0};
int j = 0, k = 0, i = 0;
if ( m > n)
06-04
5728
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交