zoukankan      html  css  js  c++  java
  • 字符串匹配算法---BF

    Brute-Force算法,简称BF算法,是一种简单朴素的模式匹配算法,常用语在一个主串string 内查找一个子串 pattern的出现位置。

    核心思想:

      i 遍历主串string

        i 每自增一次,内层循环用 j 遍历子串 pattern ,同时判断 patter[j] == string[i+j]

          若条件成立,j 自增

             否则退出循环

        判断 j 是否遍历到 pattern尾部

          若 j == strlen(pattern),匹配成功,return i;

          若 j != strlen(pattern), 匹配失败 , i 自增继续从str的下一个字符一个一个匹配。

      i 遍历完主串string程序仍没有结束,说明没有找到子串pattern,return -1 

    比如要在stringaaacaaab中查找patternaaab:

    代码实现:

    int BF(char pattern[], char str[])
    {
        for(int i = 0; i < strlen(str); ++i){ // i遍历主串str
            int j;
            for(j = 0; pattern[j] && str[i+j] == pattern[j]; ++j); // j遍历子串pattern,pattern[j] != str[i+j]时结束循环
            if(!pattern[j]){ // j匹配至pattern尾部,匹配成功
                return i;
            }
        }
        return -1;
    }
  • 相关阅读:
    MSSQL复制表
    分享职场心得《7》
    分享职场心得《2》
    分享职场心得《3》
    免费收录网站搜索引擎登录入口最新版
    读写分离,读写分离死锁解决方案
    分享职场心得《5》
    分享职场心得《6》
    分享职场心得《1》
    分享职场心得《4》
  • 原文地址:https://www.cnblogs.com/GuoYuying/p/11630139.html
Copyright © 2011-2022 走看看