BF算法

思想

BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
这里写图片描述

代码

public class Test1 {
    /**
     * BF
     * @param str
     * @param str2
     * @param pos
     * @return
     */
    public static int BF(String str,String str2,int pos){
        //判断POS是否合法
        if(pos < 0 || pos > str.length() || str2.length() > str.length()){
            return -1;
        }
        int i = pos;
        int j = 0;
        while(i < str.length() && j < str2.length()){
            if (str.charAt(i) == str2.charAt(j)) {
                i++;
                j++;
            }else{
                i = i-j+1;
                j = 0;
            }
        }
        if(j >= str2.length()){
            return i-j;
        }else{
            return -1;
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "ababcabcdabcde";
        String str2 = "abcd";
        int index = BF(str,str2,0);
        System.out.println(index);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_39475906/article/details/80299635