BF算法(Brute Force)
从字符串主S中查找到字符串T的位置。每次一个字符串的对比,若相等,则继续查找后面的字符串。不相等,则从S的下一个字符串继续查找。最后找不到,则返回了-1,否则返回T在S中的开发位置。
下面是PHP的实现:
<?php function index($str, $reg, $startPos = 0) { $strArr = str_split($str); $regArr = str_split($reg); if ($startPos >= count($strArr)) { return -1; } $i = $startPos; $j = 0; while($i < count($strArr) && $j < count($regArr)) { if ($strArr[$i] == $regArr[$j]) { $i++; $j++; } else { $i = $i - $j + 1; $j = 0; } if ($j >= count($regArr)) { return $i - count($regArr); } } return -1; } $str = "abdsfasjdkfl"; $reg = "dkfl"; print_r(index($str, $reg, 9));