SDUT 2272 数据结构实验之串一:KMP简单应用
2016-06-19 15:36
423 查看
点击打开题目链接
#include <bits/stdc++.h> #define N 1000010 using namespace std; int next ; char _string1 , _string2 ; int _find(char *str1, char *str2); void creat_next(char *str); int main() { while(gets(_string1)) { gets(_string2); creat_next(_string2); cout << _find(_string1, _string2) << endl; } return 0; } void creat_next(char *str) { int lenth = strlen(str); int j = -1, k = 0; next[0] = -1; while(k < lenth) { if(j == -1 || str[j] == str[k]) { ++ j; ++ k; next[k] = j; } else { j = next[j]; } } } int _find(char *str1, char *str2) { int lenth1 = strlen(str1), lenth2 = strlen(str2); int i = 0, j = 0; while(i < lenth1 && j < lenth2) { if(j == -1 || str1[i] == str2[j]) { ++ j; ++ i; } else j = next[j]; } if(str2[j] == '\0') { return i-lenth2+1; } return -1; }
相关文章推荐
- KMP算法的C#实现方法
- JavaScript中数据结构与算法(五):经典KMP算法
- 字符串算法--KMP--Java实现
- KMP算法(转载)
- kmp算法实现
- KMP算法详解
- linux kernel data struct: KMP算法实现
- 求一个字符串中连续出现次数最多的子串
- KMP算法总结
- KMP算法
- KMP字符串匹配算法
- 字符串匹配之KMP算法
- kmp
- 【hiho一下第三周】KMP计算模式串在原串出现次数
- HDU1711 模板题-KMP
- HDU1358:Period
- hdu1711
- POJ 2406 Power Strings
- KMP next[]数组
- kmp 学习 hihocoder #1015