暴力匹配(BF)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较,直到得出最后的匹配结果。
问题
有两个字符串,S1是母串,S2是子串,要在母串中找子串出现的位置。
S1:WANGDENGKE
S2:KE
思路
- 用s1[i]和s2[j]去匹配,如果匹配成功,i++,j++,即S1和S2都后移一位,匹配下一位;
- 如果匹配失败,让i=i-j+1;j=0;即让S1后移一位,S2回溯,从S1的下一位重新匹配;
PHP代码实现
1 | class BF |
运行结果
1 | array(2) { |