博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj(2406)(kmp)
阅读量:5859 次
发布时间:2019-06-19

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

  hot3.png

15103727_FkC5.gif
15103727_iBD7.gif View Code
1
//
kmp算法
2
#include
"
iostream
"
3
using
namespace
std;
4
char
s[
10000001
];
5
int
next[
100001
];
6
int
L;
7
int
i,j;
8
void
Index_kmp()
9
{
10
while
(i
<
L)
//
kmp核心算法
11
{
12
if
(j
==
0
||
s[i]
==
s[j])
//
继续比较后继字符
13
{
++
i;
++
j; next[i]
=
j; }
14
else
15
j
=
next[j];
//
串向右移动
16
}
17
}
18
int
main()
19
{
20
while
(
1
)
21
{
22
scanf(
"
%s
"
,s);
23
if
(s[
0
]
==
'
.
'
)
break
;
24
L
=
strlen(s);
25
i
=
1
; j
=
0
; next[
0
]
=
0
;
26
27
Index_kmp();
28
if
(L
%
(L
-
next[L])
==
0
) printf(
"
%d\n
"
,L
/
(L
-
next[L]));
//
形成周期性
29
else
printf(
"
1\n
"
);
30
}
31
return
0
;
32
}

转载于:https://my.oschina.net/garyun/blog/602846

你可能感兴趣的文章
软件测试 -- 软件生存周期六个阶段
查看>>
http请求拆分
查看>>
项目需求分析答辩总结模板
查看>>
VS Code前端开发利器-常用快捷键
查看>>
zookeeper源码分析之leader选举
查看>>
线程问题
查看>>
分支限界法
查看>>
陶哲轩实分析习题9.1.1
查看>>
《常微分方程教程》习题2.3.5,(2)
查看>>
20171213构建之法:现代软件工程-阅读笔记1
查看>>
Weekly 1
查看>>
Oracle如何把数据库表迁移到指定表空间
查看>>
Informix之onspaces语法及实例(磁盘空间管理)
查看>>
开博宣言
查看>>
db.properties
查看>>
C++程序设计(第二版)谭浩强----程序题课后习题答案第三章
查看>>
假期之后
查看>>
Python基础二_操作字符串常用方法、字典、文件读取
查看>>
Pvr_ControllerModuleInit代码分析
查看>>
Neo4j CQL -(5)- CREATE+MATCH+RETURN命令
查看>>