码迷,mamicode.com
首页 > 编程语言 > 详细

BF算法(蛮力匹配算法)

时间:2018-03-15 01:44:43      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:连续   调用   post   目标   length   ++   string   private   对比   

将主串M指定位置和目标串S开始位置进行对比,如果相同将M的下一个字符和S的下一个字符对比,如果不同则M的下一个字符和S的开始位置对比,直到S中每一个字符和M中的连续字符串相等,否则不匹配。

C#代码-->

       private static int Index(string m,int  pos, string s)
        {
            int m_len = m.Length;
            int s_len = s.Length;
            int i = pos-1;
            int j = 0;
            if (pos>m_len)
            {
                return -1;
            }
            while ( i<m_len && j<s_len)
            {
                if (m[i]==s[j])
                {
                    i++;
                    j++;
                }
                else
                {
                    j = 0;
                    i = i - j + 1;
                }
            }
            if (j>=s_len)
            {
                return i - s_len;
            }
            else
            {
                return 0;
            }
        }


//调用
 int res = Index("asdfghjkl", 2, "fghjk");
 Console.WriteLine(res);

 复杂度为O(M*N)

BF算法(蛮力匹配算法)

标签:连续   调用   post   目标   length   ++   string   private   对比   

原文地址:https://www.cnblogs.com/ouyangping/p/8570894.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!