美文网首页
kmp算法的bug free版本

kmp算法的bug free版本

作者: 芥川世之介 | 来源:发表于2019-10-30 23:39 被阅读0次
#include <cstdio>
#include <cstring>
#include <iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;
int n, num, Next[1001001];

int main()
{
    string s, t;
    getline(cin, t);
    cin >> s;
    int m = s.length();
    memset(Next, 0, sizeof(Next));
    int now = Next[0] = -1;
    for (int i = 1; i < m; i++)
    {
        while (now >= 0 && s[now + 1] != s[i]) now = Next[now];
        if (s[now + 1] == s[i]) now++;
        Next[i] = now;
    }
    int n = t.length();
    now = -1;
    int flag = 1;
    for (int i = 0; i < n; i++)
    {
        while (now >= 0 && s[now + 1] != t[i]) now = Next[now];
        if (s[now + 1] == t[i]) now++;
        if (now == m - 1)
        {
            flag = 0;
            cout << i - m + 1 << " ";
            now = Next[now];
        }
    }
    if (flag == 1)
        cout << "false";
}

相关文章

  • kmp算法的bug free版本

  • KMP 专题整理

    KMP 学习记录 kuangbin专题十六——KMP KMP 学习总结 朴素 KMP 算法 拓展 KMP 算法(E...

  • 对KMP算法的一些理解

    最近学到KMP算法,下面讲讲对KMP算法的一些个人理解,希望对大家有帮助! 对于KMP算法的理解: 整个KMP算法...

  • KMP算法swift版本

    从上图中我们可以分析到,与其说是next数组,不如说是最小公共子前缀数组那么问题来了,怎么求这个next数组呢?根...

  • KMP算法文章合集

    字符串的查找:朴素查找算法和KMP算法 暴力匹配算法与KMP算法(串的匹配) 字符串查找算法BF和KMP 字符串匹...

  • 问答|KMP算法学习笔记

    问题 目录KMP是什么,做什么用的KMP算法的高效体现在哪如何KMP算法的next数组KMP的代码KMP的时间复杂...

  • KMP算法——寻找子串位置

    KMP算法——寻找子串位置 1、KMP算法简介: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J....

  • 字符串匹配 - KMP算法

    前面我们介绍非常高效的 BM 算法,今天我们介绍另一个非常出名且高效的 KMP 算法。 KMP 算法思想 KMP ...

  • 串的模式匹配算法

    KMP算法 算法匹配

  • KMP算法及优化

    转载请注明出处: KMP算法及优化 今天看到同学在复习数据结构书上的KMP算法,忽然发觉自己又把KMP算法忘掉了,...

网友评论

      本文标题:kmp算法的bug free版本

      本文链接:https://www.haomeiwen.com/subject/mstzvctx.html