PHP实现BF算法

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

 

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>