首页 > 学院 > 开发设计 > 正文

sunday模式匹配算法

2019-11-06 08:22:46
字体:
来源:转载
供稿:网友
#include <stdio.h>#include <string.h>//sunday模式匹配算法void initOcc(char* T, int* occ, int occn) {	int i;	for (i = occn - 1; i >= 0; i--) {		occ[i] = -1;	}	for (i = strlen(T) - 1; i >= 0; i--) {		if (occ[T[i]] == -1) {			occ[T[i]] = i;		}	}}int main() {	char S[] = "xzxmzncbvnvsidffkshjcasj";	char T[] = "asj";	int slen = strlen(S);	int tlen = strlen(T);	int occ[128] = {0}; 	initOcc(T, occ, sizeof(occ) / 4); //初始化occ数组	int i = 0, j = 0, key;	while (i < slen && j < tlen) {		if (S[i] == T[j]) {			i++;			j++;		} else {			key = i - j + tlen;						if (key >= slen) {				break;			}						i = i + (tlen - occ[S[key]]) - j; //跳跃			j = 0;		}	}	if (j == tlen) {		PRintf("ok/n");	} else {		printf("no/n");	}	return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表