HUST - 1010 The Minimum Length(最小循环节)
2024-09-08 17:29:07
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 ;
}
最新文章
- 继承AppCompatActivity的Activity隐藏标题栏
- Linux之head、tail、grep、cut等命令详解
- Elasticsearch升级1.5版本暴露jdk的bug
- Swift 学习笔记 enum 枚举类型
- ADOMD连接SSAS和Mondrian,rex的终结者
- JavaScript高级程序设计之原型对象
- 纯js页面跳转整理
- MySQL参数调优最佳实践
- Android蓝牙操作笔记
- JSP执行过程详解
- 新发现IM项目Rabbitim(使用msys或者cygwin编译安装),FileZilla(wxWidget开发)
- NSIS 自定义页面制作关闭功能
- UVA315- Network(无向图割点)
- 关于struts2的web.xml配置
- C++ Primer 有感(标准库set类型)
- SQLServer 基础
- SQL Server 2008 开启远程连接
- poj2442 堆应用
- Word AddIn编译出现LINK2001 _main
- Linux sed命令操作 删除文件每一行的前k个字符、在文本的行尾或行首添加字符
热门文章
- 了解Chrome扩展程序开发--摘抄
- Codeforces Round #268 (Div. 2) D. Two Sets [stl - set + 暴力]
- Mongodb报错:ERROR: child process failed, exited with error number 1
- D3拖动效果
- 面试题:oracle数据库行转列的问题
- NOIP临考经验(转)
- 洛谷 P1034 矩形覆盖
- IntelliJ IDEA出现:This file is indented with tabs instead of 4 spaces的问题解决
- 用 jQuery实现图片等比例缩放大小
- 【postman】安装使用说明