模式匹配KMP POJ2752
来源:互联网 发布:误入传销 知乎 编辑:程序博客网 时间:2024/06/08 02:23
题目地址:http://poj.org/problem?id=2752
题目大意:求一个字符串中满足:前缀等于后缀的可能的子串的长度,串的长度小于等于400000。
解题思路:kMP,貌似发现了清华的数据结构书中的一点错误,明个再研究研究。。。
程序代码:
#include <cstdio>#include <cstring>#include <cstdlib>#define N 400010int next[N];int res[N];char str[N];void GetNext(){ next[0] = -1; int i = 0; int j = -1; while (i < strlen(str)) { if (j == -1 || (str[i] == str[j])) { i++; j++; // if (str[i] == str[j]) next[i] = next[j]; // else next[i] = j; } else { j = next[j]; } }}void getNext(){ int i=1; int j=-1; next[0]=-1; while (i < strlen(str)) { while (j != -1 && str[j+1] != str[i]) j = next[j]; if (str[j+1] == str[i])j++; next[i] = j; i++; }}int main(){ while (~scanf("%s", str)) { //GetNext(); getNext(); int j = strlen(str) - 1; int cnt = 0; while (j != -1) { res[cnt] = j + 1; cnt++; j = next[j]; } for (int i = cnt - 1; i >= 0; i--) { printf("%d ", res[i]); } printf("\n"); } return 0;}
0 0
- 模式匹配KMP POJ2752
- poj2752 kmp
- poj2752---KMP
- poj2752(KMP)
- poj2752 KMP
- POJ2752(KMP)
- poj2752 Milking Grid--------KMP
- poj2752 kmp 进一步运用
- KMP 专场 POJ2752
- poj2752 kmp 模板题
- poj2752 扩展kmp
- poj2752 KMP水题
- kmp练习poj2752
- 模式匹配---KMP算法
- kmp 模式匹配。。。。
- 模式匹配 KMP算法
- 模式匹配-KMP算法
- KMP模式匹配算法
- 单点登录SSO的实现原理
- 博弈树,动态规划(计算好的子问题存储起来,以后直接取用)
- 火炬之光模型导出(Unity加载火炬之光的模型)
- SpannableString 对一些特有的字符进行事件监听
- 二进制查找树转换为双向链表
- 模式匹配KMP POJ2752
- PAT Advanced Level 1018
- 黑马程序员_笔迹四_面向对象(基础)
- android adb读写挂载跟目录
- 黑马程序员_笔记五_面向对象(高级)
- POJ 3970(最小公倍数LCM)
- 黑马程序员----------java基础加强之多线程、单例设计模式
- 黑马程序员_笔记六_面向对象(高级)---抽象类
- 黑马程序员_笔迹七_面向对象(高级)---接口