欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

KMP的c语言实现和学习

发布时间:2024/9/21 编程问答 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 KMP的c语言实现和学习 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、学习要点:
1.KMP算法思路了解:https://www.bilibili.com/video/av3246487?from=search&seid=11009544750632580740
2.KMP完整代码实现视频:
https://www.bilibili.com/video/av16828557/?spm_id_from=333.788.videocard.2
3.完整代码实现可运行版,参考:https://blog.csdn.net/xiaoquantouer/article/details/62444741
二、代码

#include<iostream> #include<stdlib.h> #include<string> #include<vector> using namespace std; vector<int> getNe(string ss) {int n = ss.size();vector<int> next(n);int k = 0;for (int i = 1; i < n; i++){while (k != 0 && ss[k] != ss[i]){k = next[k - 1];}if (ss[k] == ss[i]){next[i] = ++k;}else{next[i] = k;}}return next; } int KMP(string str, string ss) {int n = str.size();int m = ss.size();vector<int> next = getNe(ss);for (int i = 0,k=0; i &

总结

以上是生活随笔为你收集整理的KMP的c语言实现和学习的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。