首页 > 编程语言 >字符串匹配算法之BF算法(即暴力算法)

字符串匹配算法之BF算法(即暴力算法)

时间:2022-12-26 23:45:11浏览次数:48  
标签:字符 BF bLength int 算法 字符串 strB

 

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

  public static int bf(String strA, String strB) {
    int aLength = strA.length();
    int bLength = strB.length();

    int i = 0, j = 0;

    while (i < aLength && j < bLength) {
      if (strA.charAt(i) == strB.charAt(j)) {
        i++;
        j++;
      } else {
        i = i - j + 1; // k
        j = 0;
      }
    }
    if (j == bLength) {
      return i - j;
    } else {
      return -1;
    }
  }

 

标签:字符,BF,bLength,int,算法,字符串,strB
From: https://www.cnblogs.com/shoshana-kong/p/17007146.html

相关文章

  • rk字符串匹配算法java实现
      /***rk字符串匹配算法,主要引入了hash的概念,*利用子串的hash值依次对比主串相应长度的子串hash值*并对hash值相同的子串进行匹配对比*/publicclassRKS......
  • 基于pybind11实现Python调用c++编写的CV算法--上(Windows+VS)
    C++是一种编译型(compiled)语言,设计重点是性能、效率和使用灵活性,偏向于系统编程、嵌入式、资源受限的软件和系统。Python是一种解释型(interpreted)语言,同样也支持不同的......
  • leetcode-541. 反转字符串 II
    541.反转字符串II-力扣(Leetcode)比较简单,想清楚边界条件,然后做一下字符的反转即可。go可以将不能变动的字符串转换成可以变动的[]byte之后,修改完之后,再转成string......
  • 快速排序算法实现 (y总课后)
    主要思路:1、确定边界l——————————r (leftright)2、确定中间值 l————————x——————————r3、优雅快排:设置两个指针i,j。i从左边开始运行......
  • Atcoder Beginner Contest ABC 283 Ex Popcount Sum 题解 (类欧几里得算法)
    题目链接令\(p=\lfloor\frac{n-r}m\rfloor\),则我们其实是要对所有\(0\lei\le29\)求\(\sum_{j=0}^p(\lfloor\frac{mj+r}{2^i}\rfloormod\2)\)。右边那个东西如果没......
  • 正确理解和使用JAVA中的字符串常量池
    前言研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用......
  • 动态规划算法
    动态规划基本概念阶段问题的过程被分成若干相互联系的部分,我们成为阶段,以便按一定的次序求解。状态某一阶段的出发位置成为状态,通常一个阶段包含若干状态。决策对问......
  • win32编程 -- 字符串资源与快捷键资源
    就趁着春天吧,一点一点重新来过。。。---- 网易云热评一、字符串资源1、新建String Table2、修改相应的字符串,主要用来切换中英文3、替换文中的字符串wchar_ts[256]={......
  • C#基础⑨——字符串(string str = null 与string str = ““的区别)
    一、字符串ToLower、Toupper:大小写字母转换str=str.ToLower():得到字符串的小写形式str=str.Toupper():得到字符串的大写形式sq.Equals(s2,StringComparison.OrdinallgnoreC......
  • 一些排序算法的学习笔记
    大纲:冒泡排序插入排序选择排序快速排序归并排序堆排序一、冒泡排序简述:把一个数组看成一个装水的桶,数组中的每个元素的值代表其质量。一开始这些元素被我用箩筐......