zoukankan      html  css  js  c++  java
  • Brute-Force算法

    Brute-Force算法简称BF算法:也称简单匹配算法,其基本思路是:从目标串s=”s0s1…sn-1”的第一个字符开始和模式串t=”t0t1…tm-1”中的第一个字符比较,若相等,则继续逐个比较后续字符,否则,从目标串s的第2个字符开始重新与模式串t的第一个字符进行比较,依次类推,若从模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,该算法返回i;否则匹配失败,返回-1.

    Java代码

        private static int bruteforce(String source, String sub) {  
                int j = 0, i = 0;  
                int index = -1;  
                while (i < source.length() && j < sub.length()) {  
                    if (source.charAt(i) == sub.charAt(j)) {  
                        i++;  
                        j++;  
                    } else {  
        //使i回退到下一个字符,应为子串的前面j向可能匹配成功,而第j+1项失败,所以i=i-j+1  
                        i = i - j + 1;  
                        j = 0;  
                    }  
                    if (j == sub.length()) {  
                        index = i - sub.length();  
                    } else {  
                        index = -1;  
                    }  
                }  
                return index;  
            } 

  • 相关阅读:
    基础最短路(模板 bellman_ford)
    UVA-12304 Race(递推)
    How do you add?(递推)
    Coconuts, Revisited(递推+枚举+模拟)
    UVA-10726 Coco Monkey(递推)
    UVA-10995 Educational Journey
    UVA-10339 Watching Watches
    【React】377- 实现 React 中的状态自动保存
    【JS】376- Axios 使用指南
    【Nodejs】375- 如何加快 Node.js 应用的启动速度
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3360351.html
Copyright © 2011-2022 走看看