sunday模式匹配算法

来源:互联网 发布:visio软件流程图模版 编辑:程序博客网 时间:2024/05/20 18:01
#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;}

0 0
原创粉丝点击