kmp算法是一个比较高级的算法了,加了改进了,下面我们来在php中实现kmp算法,希望例子对各位同学会带来帮助,kmp算法是一种改进的字符串匹配算法,由d.e.knuth与v.r.pratt和j.h.morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称kmp算法),kmp算法的关键是根据给定的模式串w1,m,定义一个next函数,next函数包含了模式串本身局部匹配的信息.
例子,代码如下:
";
if ($par[$j] === $src[$i]) {
//记录匹配个数
$j++;
$i++;
} else {
if ($j === 0) {
$i++;
}
$j = $K[$j-1 >= 0 ? $j -1 : 0];
}
}
return false;
}
// 测试下是否可用
$src = 'BBC ABCDAB ABCDABCDABDE';
$par = 'ABCDABD';
// 匹配值
echo "部分匹配值:", implode(" ", KMP($par)), "
";
// 在给定的字符串中查找特定字符(串)
echo KMPMatch($src, $par), "
";
/*
部分匹配值:0 0 0 0 1 2 0
0 0 B-A
1 0 B-A
2 0 C-A
3 0 -A
4 0 A-A
5 1 B-B
6 2 C-C
7 3 D-D
8 4 A-A
9 5 B-B
10 6 -D
10 2 -C
10 0 -A
11 0 A-A
12 1 B-B
13 2 C-C
14 3 D-D
15 4 A-A
16 5 B-B
17 6 C-D
17 2 C-C
18 3 D-D
19 4 A-A
20 5 B-B
21 6 D-D
15
*/
文章链接:
随便收藏,请保留本文地址!
立即学习“PHP免费学习笔记(深入)”;











