《算法4》书中关于KMP算法的完整试下如下:
public class KMP
{
private String pat ;
private int[][] dfa ;
public KMP(String pat)
{
this.pat = pat ;
int M = pat.length() ;
int R = 256 ;
dfa = new int[R][M] ;
dfa[pat.charAt(0)][0] = 1 ;
for(int X=0 , j=1 ; j
我唯一不理解的地方时在构造dfa数组时x的计算方法, 为什么X = dfa[pat.charAt(j)][X]?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
<<算法>>上讲KMP我感觉将复杂了,我根本没看懂。
其实根本不用二维数组,建议你看看CSDN上一个叫July的人写的博文,讲的很清楚。