28. Implement strStr()

原创 2016年05月31日 18:27:54

28. Implement strStr()

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Analysis:
字符串子串匹配问题,一般就是简单低效的朴素模式匹配算法和高效的KMP方法。
由于KMP方法稍微复杂,这里只用了朴素法。

Source Code(C++):

#include <iostream>
#include <vector>
using namespace std;

class Solution {
public:
    int strStr(string haystack, string needle) {
        int h_index=0, n_index=0;
        while(h_index<haystack.size() && n_index<needle.size()) {
            if (haystack.at(h_index) == needle.at(n_index)) {  //如果相等,继续对比下一位
                h_index++;
                n_index++;
            }
            else{
                h_index = h_index-n_index+1;    //否则,h退回到上次匹配首位的下一位
                n_index = 0;
            }
        }
        if (n_index==needle.size()){
            return h_index-needle.size();
        }
        else {
            return -1;
        }
    }
};

int main() {
    Solution sol;
    cout << sol.strStr("", "");
    cout << sol.strStr("", "a");
    cout << sol.strStr("a", "");
    cout << sol.strStr("avf", "vf");
    return 0;
}
版权声明:转载请注明出处,谢谢。 举报

相关文章推荐

LeetCode 28. Implement strStr()(实现子串定位)

原题网址:https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns the index of the...

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

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

LeetCode(28)Implement Strstr()

题目如下 Implement strStr()  Returns a pointer to the first occurrence of needle in haystack, or null if...

LeetCode 28 Implement strStr() 找到字串返回位置。

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

[Leetcode]_28 Implement strStr()

Leetcode_28 Implement strStr() 字符串模式匹配 BF KMP

[LeetCode28] Implement strStr()

Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if n...

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

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

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

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

LeetCode 28_Implement strStr()

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

Leetcode 28. Implement strStr()

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

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