字符串匹配

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;
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值