隆隆,北京协和医院票贩子,东营饭店
PHP实现DFA算法代码教程
addKeyWord('王八蛋'); $obj->addKeyWord('王八羔子'); $obj->addKeyWord('香烟'); $obj->addKeyWord('狗儿子'); $obj->getHashMap(); var_dump($obj->searchKey('王八蛋')); var_dump($obj->searchKey('王八')); class DFA { private $arrHashMap = []; public function getHashMap() { print_r($this->arrHashMap); } public function addKeyWord($strWord) { $len = mb_strlen($strWord, 'UTF-8'); // 传址 $arrHashMap = &$this->arrHashMap; for ($i=0; $i < $len; $i++) { $word = mb_substr($strWord, $i, 1, 'UTF-8'); // 已存在 if (isset($arrHashMap[$word])) { if ($i == ($len - 1)) { $arrHashMap[$word]['end'] = 1; } } else { // 不存在 if ($i == ($len - 1)) { $arrHashMap[$word] = []; $arrHashMap[$word]['end'] = 1; } else { $arrHashMap[$word] = []; $arrHashMap[$word]['end'] = 0; } } // 传址 $arrHashMap = &$arrHashMap[$word]; } } public function searchKey($strWord) { $len = mb_strlen($strWord, 'UTF-8'); $arrHashMap = $this->arrHashMap; for ($i=0; $i < $len; $i++) { $word = mb_substr($strWord, $i, 1, 'UTF-8'); if (!isset($arrHashMap[$word])) { // reset hashmap $arrHashMap = $this->arrHashMap; continue; } if ($arrHashMap[$word]['end']) { return true; } $arrHashMap = $arrHashMap[$word]; } return false; } }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
网友评论