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));