zoukankan
html css js c++ java
KMP算法
因为在做大文件上传的分析中需要用到一段字符串的匹配算法,所以重新学习了一次KMP算法.
private
int
[] GetNextVal(
string
t)
{
int
j
=
0
, k
=
-
1
;
int
[] nextVal
=
new
int
[t.Length];
nextVal[
0
]
=
-
1
;
while
(j
<
t.Length
-
1
)
{
if
(k
==
-
1
||
t[j]
==
t[k])
{
j
++
;
k
++
;
if
(t[j]
!=
t[k])
{
nextVal[j]
=
k;
}
else
{
nextVal[j]
=
nextVal[k];
}
}
else
{
k
=
nextVal[k];
}
}
return
nextVal;
}
private
int
KmpIndexOf(
string
s,
string
t)
{
int
i
=
0
, j
=
0
, v;
int
[] nextVal
=
GetNextVal(t);
while
(i
<
s.Length
&&
j
<
t.Length)
{
if
(j
==
-
1
||
s[i]
==
t[j])
{
i
++
;
j
++
;
}
else
{
j
=
nextVal[j];
}
}
if
(j
>=
t.Length)
v
=
i
-
t.Length;
else
v
=
-
1
;
return
v;
}
查看全文
相关阅读:
使用rem来开发你的移动端网站
在网页布局中合理使用inline formating context(IFC)
构建OLAP CDP平台 Maven父子项目
2014世界杯决赛观后感
2013岁末总结
11月11日上班杂谈
这一年
湖南联通发福利了C#为你月赚150M流量回家过年不再愁
C# 实现对接电信交费易自动缴费 续(winio/winring0 自动填密码)
C# 实现对接电信交费易自动缴费
原文地址:https://www.cnblogs.com/afxcn/p/1231831.html
最新文章
IOS客户端的个人中心可以查看自己的博客了。
博客园的IOS客户端
第一期读书计划
java面试突击很好的视频
(四)JVM-垃圾收集算法
(三)jvm-对象生存还是死亡
(二)jvm-Java对象的创建、访问
(一)JVM-Java运行时数据区域
(三)lamda
(二)行为化参数传递代码
热门文章
(一)为什么关心java8
Spring boot 设置热启动
IDEA用maven创建springMVC项目和配置
Elasticsearch 启动报错集合
linux下安装Java环境
安装wget
linux 下安装压缩解压命令zip、unzip
window 与 linux 之间文件传输
Elasticsearch 安装
关于在职考研的一些心得
Copyright © 2011-2022 走看看