当前位置: 首页 > news >正文

LeetCode 字符串专题——KMP算法_28. 找出字符串中第一个匹配项的下标

字符串专题——KMP算法

  • KMP算法
  • 例题

KMP算法

待更新

例题

https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/description/

class Solution {vector<int> next;void getNext(string s){int j=-1;next[0]=-1;int len=s.size();for(int i=1;i<len;i++){while(j!=-1 && s[i]!=s[j+1]){j=next[j];}if(s[i]==s[j+1]){j++;}next[i]=j;}}int KMP(string text,string pattern){int n=text.size(),m=pattern.size();next.clear();next.resize(m);getNext(pattern);int j=-1;for(int i=0;i<n;i++){while(j!=-1 && text[i]!=pattern[j+1]){j=next[j];}if(text[i]==pattern[j+1]){j++;}if(j==m-1){return i-m+1;}}return -1;}
public:int strStr(string haystack, string needle) {return KMP(haystack,needle);}
};
http://www.lryc.cn/news/344177.html

相关文章:

  • 上班不想用脑子写代码了怎么办?那就试试Baidu Comate啊宝贝
  • 【管理咨询宝藏94】某国际咨询公司供应链财务数字化转型方案
  • C++_使用邻接表(链表-指针)实现有向图[完整示例及解释]
  • Gitlab自动化测试的配置
  • Qwen-Audio:推动通用音频理解的统一大规模音频-语言模型(开源)
  • 杭州破冰之举:全面取消住房限购,激发市场新活力
  • ICode国际青少年编程竞赛- Python-1级训练场-变量练习
  • 学习STM32第二十天
  • 智能BI(后端)-- 系统异步化
  • AI绘画Stable Diffusion 插件篇:智能标签提示词插件sd-danbooru-tags-upsampler
  • Android OpenMAX(六)OMXStore
  • Ubuntu下halcon软件的下载安装
  • 『ZJUBCA Collaboration』WTF Academy 赞助支持
  • Python开源工具库使用之运动姿势追踪库mediapipe
  • 【Android Studio】开启真机调试
  • CMakeLists.txt语法规则:部分常用命令说明四
  • 学习前端第三十二天(Rest 参数与 Spread 语法,变量作用域,闭包)
  • mysql从入门到起飞+面试基础题
  • 设计模式:命令模式
  • setinterval和settimeout区别在于
  • shell_结束进程脚本
  • GDPU unity游戏开发 碰撞器与触发器
  • IP地址定位技术在网络安全中的作用
  • R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包
  • spring boot3单模块项目工程搭建-下(个人开发模板)
  • 精准清理 MongoDB 数据:删除集合的正确姿势
  • java 执行修改语句
  • 【Linux系统化学习】网络套接字(编写简单的UDP服务端和客户端)
  • MFC 列表控件修改实例(源码下载)
  • QT设计模式:模板模式