Implement strStr()

原创 2015年07月10日 00:28:56

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

Update (2014-11-02):
The signature of the function had been updated to return the index instead of the pointer. If you still see your function signature returns a char * or String, please click the reload button to reset your code definition.


Solution:

class Solution {
public:
    void getNext(string needle, vector<int> &next)
    {
        int i = 0, j = -1;
        next[i] = j;
        while(i < needle.length())
        {
            while(j != -1 && needle[i] != needle[j]) j = next[j];
            next[++i] = ++j;
        }
    }

    int strStr(string haystack, string needle) {
        vector<int> next(needle.length()+1);
        getNext(needle, next);
        int i = 0, j = 0;
        int hlen = haystack.length();
        int nlen = needle.length();
        while(i < hlen && j < nlen)
        {
            if(j == -1 || haystack[i] == needle[j])
            {
                ++i;
                ++j;
            }
            else
            {
                j = next[j];
            }
        }
        if(j == nlen) return i - j;
        else return -1;
    }
};


相关文章推荐

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

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

[C++]Implement strStr() 找到子字符串第一次出现的位置

leetcode 原题链接:https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns th...
  • lyy_hit
  • lyy_hit
  • 2015年08月23日 20:14
  • 1091

Implement strStr(字符串查找)

重点内容对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1 先上一个粗...

LeetCode 28 — Implement strStr()(C++ Java Python)

题目: 题目翻译: 分析: C++实现: Java实现: Python实现: 感谢阅读,欢迎评论!...

LeetCode 028. Implement strStr()

Implement strStr()   Implement strStr(). Returns the index of the first occurrence of needl...

LeetCode 28_Implement strStr()

这是今天的第三题了,也是leetcode第28题,算法的难度也是easy,但字符串匹配这个问题本身是一个非常重要的问题。而其算法有相对简单的,有比较难的,今天我们来讲一个比较有深度的方法。当然,算法难...
  • cyfcsd
  • cyfcsd
  • 2015年11月25日 19:48
  • 391

Leetcode 28. Implement strStr()

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

[LeetCode] 28. Implement strStr()

[LeetCode] 28. Implement strStr()Implement strStr().Returns the index of the first occurrence of nee...

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

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

LeetCode题解:Implement strStr()

Implement strStr() Implement strStr(). Returns a pointer to the first occurrence of needle in ha...
  • MagiSu
  • MagiSu
  • 2013年12月16日 06:37
  • 1792
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Implement strStr()
举报原因:
原因补充:

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