博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2752 前后缀匹配
阅读量:6848 次
发布时间:2019-06-26

本文共 830 字,大约阅读时间需要 2 分钟。

kmp才能保证不超时

#include 
#include
#include
#include
#include
using namespace std;void getNext(int next[],char str[]){ int j = 0; next[0] = -1; int k = -1; int len = strlen(str); while(j < len){ if(k == -1 || str[k] == str[j]){ next[++j] = ++k; } else k = next[k]; }}int main(){ //freopen("in.txt","r",stdin); char str[400001]; int next[400001]; int j; while(scanf("%s",str) != EOF){ memset(next,0,strlen(str)); getNext(next,str); stack
q; j =strlen(str); while(j != 0){ q.push(j); j = next[j]; } while(!q.empty()){ printf("%d ",q.top()); q.pop(); } printf("\n"); } return 0;}

转载于:https://www.cnblogs.com/sean10/p/5059078.html

你可能感兴趣的文章
samil添加if语句
查看>>
斯坦福的nlp学习
查看>>
centos 防火墙设置
查看>>
Lucene.net入门学习(结合盘古分词)(转载)
查看>>
我心中的核心组件(可插拔的AOP)~第三回 日志记录组件之log4net
查看>>
DDD~Unity在DDD中的使用
查看>>
在react中实现打印功能
查看>>
实现动态系统托盘图标
查看>>
互联网部-供应商团队js规范
查看>>
用Office Viso 2010创建SharePoint 2010 工作流
查看>>
用Python写一个小爬虫吧!
查看>>
jQuery的封装和扩展方式
查看>>
问题解决 sql server 2008 评估期已过期解决办法
查看>>
工具 EZDML表结构设计器
查看>>
终于掌握vim的寄存器和系统剪贴板的使用了- 要安装vim-X11包
查看>>
Boost下载安装编译配置使用指南(含Windows和Linux) .
查看>>
深度分析 Java 的 ClassLoader 机制(源码级别)
查看>>
Oracle 获取前几行数据问题的陷阱
查看>>
SpringBoot聚合项目打包
查看>>
设计模式之抽象工厂模式
查看>>