SDUT 3311 数据结构实验之串三:KMP应用
2016-06-19 16:42
323 查看
点击打开题目链接
#include <bits/stdc++.h> #define N 1000010 using namespace std; int next ; int _array1 , _array2 ; void _find(int lenth1, int lenth2); void creat_next(int lenth1); int main() { int n, m; cin >> n; for(int i = 0; i < n; i++) { cin >> _array1[i]; } cin >> m; for(int i = 0; i < m; i++) { cin >> _array2[i]; } creat_next(m); _find(n, m); } void creat_next(int lenth) { int j = -1, k = 0; next[0] = -1; while(k < lenth) { if(j == -1 || _array2[j] == _array2[k]) { ++ j; ++ k; next[k] = j; } else { j = next[j]; } } } void _find(int lenth1, int lenth2) { int i = 0, j = 0, flag = 0; while(i < lenth1 && j < lenth2) { if(j == -1 || _array1[i] == _array2[j]) { ++ j; ++ i; } else j = next[j]; if(j == lenth2) { j = 0; flag ++; } } if(flag == 1) { cout << i-lenth2+1 << ' ' << i << endl; } else { cout << -1 << endl; } }
相关文章推荐
- 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