没有合适的资源?快使用搜索试试~ 我知道了~
克努特—莫里斯—普拉特操作
需积分: 10 0 下载量 51 浏览量
2009-09-08
21:28:10
上传
评论
收藏 3KB TXT 举报
温馨提示
试读
5页
克努特—莫里斯—普拉特操作,这个操作实现功能《How to Implement Find Child String》,所以这是个精典的文章。
资源推荐
资源详情
资源评论
如何实现求子串的问题
下面是一个自己写的KMP模式匹配算法(作用就是求子串)
供参考
―――――――――――――――――――――――――――――――――――――
克努特―莫里斯―普拉特操作(KMP模式匹配算法)
本程序用来完成串的KMP模式匹配(KMP Pattern Matching),要求读者给出串的最大长度、
主串(目标串)和子串(模式串),程序根据给定的子串(模式串)先进行自身匹配,产
生模式匹配时需要的辅助编号(next函数值),然后将子串(模式串)与主串(目标串)
完成模式匹配,由于匹配过程借助于辅助编号(next函数值)进行查找,因此匹配过程不
需回溯,算法的渐进时间复杂度为 O(n+m)。
********** 程序源代码 **********************************************************************
#include<string.h>
#define NULL 0
int n;
const int m;
typedef struct
{ char data;
int next;
}JD;
char * make()
{ char *str;
str=(char *)malloc((m+1)*sizeof(char));
gets(str);
下面是一个自己写的KMP模式匹配算法(作用就是求子串)
供参考
―――――――――――――――――――――――――――――――――――――
克努特―莫里斯―普拉特操作(KMP模式匹配算法)
本程序用来完成串的KMP模式匹配(KMP Pattern Matching),要求读者给出串的最大长度、
主串(目标串)和子串(模式串),程序根据给定的子串(模式串)先进行自身匹配,产
生模式匹配时需要的辅助编号(next函数值),然后将子串(模式串)与主串(目标串)
完成模式匹配,由于匹配过程借助于辅助编号(next函数值)进行查找,因此匹配过程不
需回溯,算法的渐进时间复杂度为 O(n+m)。
********** 程序源代码 **********************************************************************
#include<string.h>
#define NULL 0
int n;
const int m;
typedef struct
{ char data;
int next;
}JD;
char * make()
{ char *str;
str=(char *)malloc((m+1)*sizeof(char));
gets(str);
资源评论
Abraham
- 粉丝: 7
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功