字符串匹配

来源:互联网 发布:池州安广网络 编辑:程序博客网 时间:2024/05/29 04:08

BF算法
其思路很简单:从目标字符串初始位置开始,依次分别与模板的各个位置的字符比较,如相同,比较下一个位置的字符直至完全匹配;如果不同则跳到目标字符串下一位置继续如此与模板比较,直至找到匹配字符串并返回其位置。

我们注意到Brute Force 算法是每次移动一个单位,一个一个单位移动显然太慢,设目标串String的长度为m,Pattern的长度为n,不难得出BF算法的时间复杂度最坏为O(mn),效率很低。

/* BF */public class MyString {    String s1 = "abcdef";    String s2 = "ef";  public int BF(){     int lenS1 = s1.length() - s2.length();     int lenS2 = s2.length();     for(int i = 0; i <= lenS1; i++){         boolean flag = true;         for (int j = 0; j < lenS2; j++){             if(s1.charAt(i+j) != s2.charAt(j)){                 flag = false;                 break;             }         }         if(flag)             return i;     }     return -1;  }
原创粉丝点击