kmp模式匹配算法
来源:互联网 发布:mac 桌面便签 新建 编辑:程序博客网 时间:2024/06/11 06:02
注意 :next数组中,最大的数表示字符串中最长的回文串的长度,回文串可以看成自己的前缀和后缀组成,日后可以用来解决不少问题。
#include <iostream>#include<string.h>using namespace std;void get_next(char*t, int next[ ]){//确定匹配失败的时候模式串返回的位置 int t_len=strlen(t),i=0,j=-1; next[0]=-1; //递推基本条件,然后求解next[i+1] while(i<t_len) { if(j==-1 ||t[i]==t[j]) { i++; j++; next[i]=j; } else j=next[j]; //确定匹配失败的时候模式串返回的位置 }}int KMP(char *s,char *t){ int i=0, j=0; int s_len=strlen(s); int t_len=strlen(t); int *next=new int[t_len]; get_next(t,next); while(i<s_len&&j<t_len) { if(j==-1||s[i]==t[j])// next[0]=-1 { i++; j++; } else j=next[j]; } if(j==t_len) return i-j; else return -1;}int main(void){ char *s="abcdasdefghijklmnefgh"; char *t="efgh"; cout<<KMP(s,t)<<endl;//输出了模式串t在s中第一个字符的位置 return 0;}
0 0
- 模式匹配---KMP算法
- 模式匹配 KMP算法
- 模式匹配-KMP算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- 模式匹配kmp算法
- 模式匹配算法kmp
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP算法模式匹配
- KMP 模式匹配算法
- Git远程操作详解
- 腾讯实战案例!聊聊刷一刷红包预热HTML 5背后的设计过程
- 坑!百度地图初始化点坐标固定
- 人民币数字转换大小写
- windows下安装和启动redis服务器
- kmp模式匹配算法
- LeetCode 263 Ugly Number
- Linux系统调用--ptrace函数详解
- 229. Majority Element II
- sql server 查询表中是否存在某列
- IOS FKConsole设置XCODE控制台输出中文
- Hello Ionic - Ionic学习笔记
- Java的字节流和字符流
- 数组的枚举