kmp-----leetcode(Implement strStr() )

原创 2015年07月08日 18:33:45

继续学习开始刷题;。。。

首先为什么要用kmp,我们遇到问题是在字符串s1 和字符串s2, 想在字符串s1中找到s2,返回s1中的起始位置。

比如

       s1 = "ABABCABCD"

s2 ="ABCD"

   返回结果是5


首先想到的是暴力匹配,发现相同的i++,j++,如果不相同i= i-j+1,j=0。直到 j的大小等于s2的长度。

看了好久好久才知道kmp的的意思,最后发现点击打开链接这个博客写的很清晰,而kmp则是不用重头来比较,而最重要的是求next数组



void Solution::GetNextArray( string needle )
{
    next = new int[ needle.size() ];
    next[ 0 ] = -1;
    int i = 0;
    int j = -1;
    while( i<needle.size() )
    {
        if( j == -1 || needle[ i ] == needle[ j ] )
        {
            i++;
            j++;
            next[ i ] = j;
        }
        else
        {
            j = next[ j ];
        }
    }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[Leetcode P28] Implement strStr()(KMP算法)

原题:Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if need...

Leetcode 28. Implement strStr() KMP算法解题

Implement strStr().   Returns the index ofthe first occurrence of needle in haystack, or -1 if nee...

LeetCode Implement strStr() 暴力法, KMP法, Boyer-Moore简易版法

经典的字符串查找问题了。这个问题其实有四种比较经典的算法,这里介绍2种半。因为这里的Boyer-Moore是简易版,全功率版应该是简易版加上KMP法的,那个实在是复杂,面试是不大可能写出来的,除非记熟...

[LeetCode-28] Implement strStr(KMP 字符串匹配)

1、KMP算法的思想 由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出了一个改进算法,消除了Brute-Force算法中串s指针的回溯,完成串的模式匹配。时间复杂度为O(s.c...

leetcode 题解 || Implement strStr() 问题 (即 KMP 算法实现)

problem: Implement strStr(). Returns the index of the first occurrence of needle in ha...

LeetCode Implement strStr()(朴素的字符串匹配,RK算法,KMP算法)

这次来个大整合,因为正好处理到经典的字符串匹配问题 那么也是用c语言实现,现在开始吧 Implement strStr(). Returns the index of the first occ...

LeetCode-难题集之Implement strStr()与KMP算法

Implement strStr():https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns the ...

Implement strStr() [leetcode] BM算法和KMP算法

我的实现中,BM算法在OJ中比KMP稍慢

LeetCode_28---Implement strStr() [KMP算法,字符匹配算法]

Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle...

28. Implement strStr() 以及KMP算法的实现

28. Implement strStr()题目描述Implement strStr().Returns the index of the first occurrence of needle in ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)