首页 > 其他分享 >模式匹配之BF

模式匹配之BF

时间:2022-10-12 12:11:31浏览次数:42  
标签:BF false ++ len start return 模式匹配

BF

1.BF算法

1.1算法思想

  1. 判断是否为空串

  2. 判断模式串T是否长于主串S

  3. 初始化:主串S和模式串T均从头开始,用指示器i,j分别指向S,T需要比较的字符

  4. 两串逐位比较:当S和T均没有被遍历完时,对应的字符就做比较。若值相等,则比较两者的下一位置(指示器后移i++,j++);若不等,则从S 本次比较位置的开始位置 的下一个位置(用指示器start指向)开始比较,T从头重新开始

  5. 判别:若匹配成功则记录S起始位置,不成功则返回false

1.2算法设计

bool Index_BF(SString S,SString T) 
{
    if (S.len == 0 || T.len == 0) 
    {
        return false;
    }
    if (S.len < T.len) 
    {
        return false;
    }
    int start = 0;
    int i=0, j=0;
    while (i < S.len && j < T.len) //从i退出循环是指没有匹配成功 从j退出循环是指匹配成功
    {
        if (S.ch[i] == T.ch[j])
        {
            i++;
            j++;
        }
        else 
        {
            start++;
            i = start;
            j = 0;
        }
    }
    if (j >= T.len) 
    {
        printf("在S中从start=%d位置开始匹配成功\n", start+1);
        return true;
    }
    return false;
}

标签:BF,false,++,len,start,return,模式匹配
From: https://www.cnblogs.com/wlb429/p/16784085.html

相关文章

  • KMP模式匹配 学习笔记
    功能能在线性时间内判断字符串\(A[1~N]\)是否为字符串\(B[1~M]\)的子串,并求出字符串\(A\)在字符串\(B\)中各次出现的位置。实现1.对字符串\(A\)进行自我“匹配”,求出一......
  • BFC
    什么是BFC?BFC(BlockFormattingContext)直译为“块级格式化范围”。它是指一个独立的块级渲染区域,只有Block-levelBOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与......
  • Leetcode 117 -- 树&&bfs
    题目描述填充每个节点的下一个节点题目要求我们填充每个节点的\(next\)指针,让它指向它的(同一层)右侧的节点,如果没有,指向$NULL,(初始时全部指向\(NULL\))。思路看到......
  • 字符串的模式匹配
    字符串的模式匹配就是在主串中找到子串。基本方法一,是一趟一趟地比较。但是可能引起回溯,从而浪费时间,引起回溯的原因是,主串中从在和子串部分匹配的子串,这样就欺骗了程序......
  • 【VFP】如何将超大数据的EXCEL表转换为DBF表
    经常进行计算机处理的工作人员,有时候需要用VFP来快速处理EXCEL电子表格里数据。如果EXCEL数据少的话,可以直接打开数据表,将文件另存为”EXCEL5.0/95",然后在VFP里从文件菜单......
  • 「前端料包」一文吃透盒子模型BFC
    前言接触写博客有一段时间了,都是边学边学着写,但总感觉写的凌乱,想起啥写啥。这几天在刷红宝书,收获还是蛮多的,决定结合自己的学习,写一个系列,我叫它「前端料包」,旨在巩固前......
  • POJ 2227 The Wedding Juicer(三维接雨水 BFS 贪心
    POJ2227TheWeddingJuicer(三维接雨水BFS贪心)题意:​ 给出一个二维地图,其各点上权值为其高度。如果向其中填水,请问在这张地图中可以积得多少水。​ 地图长宽为300,高......
  • POJ 3697 USTC campus network(BFS 删边)
    POJ3697USTCcampusnetwork(BFS删边)题意:​ 有一张图,每个点\(n\le10000\)之间都有一条边。现在删去若干条边\(m\le1000000\),请问还有多少点是联通的。思路:​ 我......
  • 【计算机视觉】如何使用于仕琪老师的libfacedetect人脸检测库
    前言最近又开始进行人脸检测方向的内容,看到于仕琪老师的多角度检测想试一下,还不清楚原理,先测试效果如何。libfacedetect人脸检测库是深圳大学于仕琪老师发布的开源库,与openc......
  • 清除浮动前序--BFC(Box Formatting Context)
    BFC规范BFC(BoxFormattingContext,块级格式上下文)是页面上的一个隔离的独立容器一个盒子如果不设置高度,当子元素浮动时,无法撑起自身,就会造成父元素高度塌陷,原因是......