php は KMP アルゴリズムを実装します
/**
* KMP アルゴリズムの PHP 実装
*
* @author zhaojiangwei 2011/10/22 10:28
*/
d12287db6454778108d02f18587ed399
class KMP{
private $next = NULL //パターン文字列の次の配列 T
private $t; = NULL; //パターン文字列
private $str = NULL; //メイン文字列
public function KMP($str){
$this->str = str_split($str);
$this->next = array();
}
//メイン文字列の長さを返します
public function getStrCount(){
return count($this -> ;str);
ext ($substr);
$strCount = $this->getStrCount();
count($substr);
$subIndex = 0; // substringの開始比較
$ strindex = 0; == $ substrcount){
return $ strindex -$ substrcount;
; ($ t);
$ This-> next [0] = -1;
$count = count($t);
$i = 0;
$j = -1;
while($i < $count){
if( $j == -1 || $t[$i] == $t[j] ){
if($t[$i] == $t[$j]){
$this->next[$i];
} else{
$this->next[$i] = $j;
}
}else{
$j = $this->next[$j];
}
}
return $this->next;
}
}