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

力扣-字符串-28 找出字符串中第一个匹配项的下标

思路

kmp算法的练习,实际上来说在构建next数组和使用next数组都用到了前一位字符串的最长相等前后缀

代码

class Solution {
public:void getNext(int *next, string s){int j = 0;next[0] = 0;for(int i = 1; i < s.size(); i++){while(j > 0 && s[j] != s[i]){j = next[j - 1];}if(s[j] == s[i]) j++;next[i] = j;}}int strStr(string haystack, string needle) {if(needle.size() == 0)return 0;vector<int> next(needle.size());getNext(&next[0], needle);int i = 0, j = 0;for(int i = 0; i < haystack.size(); i++){while(j>0 && needle[j] != haystack[i]){j = next[j-1];}if(needle[j] == haystack[i]) j++;if(j == needle.size()){return i - j + 1;}}return -1;}
};

http://www.lryc.cn/news/534060.html

相关文章:

  • linux 基础知识点之工作队列workqueue
  • C++蓝桥杯基础篇(二)
  • 【Android—OpenCV实战】实现霍夫圆检测针对沙盘交通灯信号检测
  • WPS如何接入DeepSeek(通过JS宏调用)
  • 图论——环检测
  • Chapter2:C#基本数据类型
  • kafka服务端之控制器
  • Unity笔试常考
  • 移植BOA服务器到GEC2440开发板
  • WPS如何接入DeepSeek(通过第三方工具)
  • 【安当产品应用案例100集】037-强化OpenVPN安全防线的卓越之选——安当ASP身份认证系统
  • Windows Docker笔记-制作、加载镜像
  • leetcode_26删除有序数组中的重复项
  • 速递丨DeepSeek刚刚成立香港子公司,或因考虑香港上市和招募全球AI人才
  • 笔灵ai写作技术浅析(六):智能改写与续写
  • 【在线优化】【有源程序】基于遗传算法(GA)和粒子群优化(PSO)算法的MPPT控制策略
  • 使用 Three.js 实现热力渐变效果
  • java-异常家族梳理(流程图)
  • 开启蓝耘之旅:DeepSeek R1 模型在智算平台的起步教程
  • [高等数学]不定积分的概念与性质
  • 【算法】【高精度】acwing算法基础 793. 高精度乘法
  • sqlite 查看表结构
  • 测试中的第一性原理:回归本质的质量思维革命
  • flink判断两个事件之间有没有超时(不使用CEP)
  • 二级C语言题解:十进制转其他进制、非素数求和、重复数统计
  • 打家劫舍3
  • 练习题(2025.2.9)
  • 【练习】PAT 乙 1074 宇宙无敌加法器
  • 网络防御高级02-综合实验
  • UITableView的复用原理