算法原理:
PHP代码:
function strstr_self($str1, $str2) {// 初始指针$i = $j = 0;// 跳出循环的条件是有一个字符串匹配完毕while ($i < strlen($str1) && $j < strlen($str2)) {// 当前位字符相同时,同时向后移动指针if ($str1[$i] == $str2[$j]) {$i++;$j++;} else {$i = $i - $j + 1; // 主串指针仅仅向后移动一位,重新匹配$j = 0;}}// 子串匹配成功跳出循环,代表匹配成功if ($j == strlen($str2)) {return $i - $j + 1; // 返回当前主串指针位置}return false;}echo strstr_self("abababcdab", "abcd");
