NodYoung

专注于计算机视觉,深度学习,机器人

28. Implement strStr()

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;
}
阅读更多
版权声明:转载请注明出处,谢谢。 https://blog.csdn.net/NNNNNNNNNNNNY/article/details/51548084
个人分类: leetcode
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

28. Implement strStr()

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭