1、赤裸裸的最小循环节

2、

3、

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std; #define MAXN 1000005//字符串长度 int _next[MAXN]; void GetNext(char t[]){//求next数组
int j,k,len;
j=;//从0开始,首先求_next[1]
k=-;//比较指针
_next[]=-;//初始值-1
len=strlen(t);
while(j<len){
if(k==-||t[j]==t[k]){//指针到头了,或者相等
++j;
++k;
_next[j]=k;//此句可由优化替代
/*优化(求匹配位置时可用)
if(t[j]!=t[k])_next[j]=k;
else _next[j]=_next[k];
//*/
}
else k=_next[k];
}
} int main(){
char str[MAXN];
int len,len2; while(~scanf("%s",str)){
len=strlen(str);
GetNext(str);//求子串的next数组
len2=len-_next[len];//最小循环节
printf("%d\n",len2);
}
return ;
}

最新文章

  1. 继承AppCompatActivity的Activity隐藏标题栏
  2. Linux之head、tail、grep、cut等命令详解
  3. Elasticsearch升级1.5版本暴露jdk的bug
  4. Swift 学习笔记 enum 枚举类型
  5. ADOMD连接SSAS和Mondrian,rex的终结者
  6. JavaScript高级程序设计之原型对象
  7. 纯js页面跳转整理
  8. MySQL参数调优最佳实践
  9. Android蓝牙操作笔记
  10. JSP执行过程详解
  11. 新发现IM项目Rabbitim(使用msys或者cygwin编译安装),FileZilla(wxWidget开发)
  12. NSIS 自定义页面制作关闭功能
  13. UVA315- Network(无向图割点)
  14. 关于struts2的web.xml配置
  15. C++ Primer 有感(标准库set类型)
  16. SQLServer 基础
  17. SQL Server 2008 开启远程连接
  18. poj2442 堆应用
  19. Word AddIn编译出现LINK2001 _main
  20. Linux sed命令操作 删除文件每一行的前k个字符、在文本的行尾或行首添加字符

热门文章

  1. 了解Chrome扩展程序开发--摘抄
  2. Codeforces Round #268 (Div. 2) D. Two Sets [stl - set + 暴力]
  3. Mongodb报错:ERROR: child process failed, exited with error number 1
  4. D3拖动效果
  5. 面试题:oracle数据库行转列的问题
  6. NOIP临考经验(转)
  7. 洛谷 P1034 矩形覆盖
  8. IntelliJ IDEA出现:This file is indented with tabs instead of 4 spaces的问题解决
  9. 用 jQuery实现图片等比例缩放大小
  10. 【postman】安装使用说明