KMP简单模板
来源:互联网 发布:兄弟情义歌曲网络歌手 编辑:程序博客网 时间:2024/06/07 10:02
KMP代码:
#include <stdio.h>#include <string.h>#define N 100 int KMP(char s[], char t[], int lens, int lent);void GetNext(char t[], int lent);int next[N];int main(){char s[N], t[N];printf("请输入母串: ");scanf("%s", s);printf("请输入子串:") ;scanf("%s", t) ;int lens = strlen(s);int lent = strlen(t);int pos = KMP(s, t, lens, lent);if(pos == -1){// 返回值为 -1 代表未找到 printf("Not Found!\n");}else{printf("匹配位置:%d\n",pos);// 从0开始 }return 0;}int KMP(char s[], char t[], int lens, int lent)//s:母串 t:字串 {GetNext(t, lent);// 求得next数组 int i = 0, j = 0;while(i < lens && j < lent){if(j == -1 || s[i] == t[j]){i ++;j ++;}else{j = next[j];}}if(j == lent){return i - lent;}else{return -1;}}void GetNext(char t[], int lent){int i = 0, j = -1;next[0] = -1;while(i < lent){if(j == -1 || t[i] == t[j]){i ++;j ++;next[i] = j;}else{j = next[j];}}}时间复杂度是O(n+m)
0 0
- KMP简单模板
- KMP(1)--hdu2203(简单KMP模板)
- HDOJ3336 KMP简单应用+模板程序
- KMP模板
- KMP 模板
- kmp模板
- kmp模板
- kmp模板
- KMP模板
- kmp模板
- kmp模板
- KMP 模板
- 【模板】KMP
- KMP模板
- KMP模板
- 【KMP 模板】
- KMP模板
- KMP 模板
- thinkphp,thinkphp5的唯一验证问题
- Android开发中一些命名规范
- 基于proteus的51单片机仿真实例五十三、4个按键的组成的按键扫描实例
- Python中xml和json格式互转
- sicp in python
- KMP简单模板
- Windows Server2012虚拟内存设置
- 基于proteus的51单片机仿真实例五十四、中断的概念和外部中断实例1
- jQuery中$(document).ready与Javascript中window.onload区别
- 深入理解JS原型链
- 阿姆达尔定律(Amdahl's law)
- [C++]STL中vector容器 begin()与end()函数、front()与back()的用法
- Java创建文件并向文件写入内容:I/0流简单操作
- jQuery总结3(事件)