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

网站开发平台开发公司百度网站模板免费下载

网站开发平台开发公司,百度网站模板免费下载,公共营养师报考条件,网站建设用宝塔Problem: 28. 找出字符串中第一个匹配项的下标 文章目录 思路解题方法复杂度Code 思路 这个问题可以通过使用KMP(Knuth-Morris-Pratt)算法来解决。KMP算法是一种改进的字符串匹配算法,它的主要思想是当子串与目标字符串不匹配时,能…

Problem: 28. 找出字符串中第一个匹配项的下标

文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code

思路

这个问题可以通过使用KMP(Knuth-Morris-Pratt)算法来解决。KMP算法是一种改进的字符串匹配算法,它的主要思想是当子串与目标字符串不匹配时,能知道一部分已经匹配的字符,利用这些信息避免从目标字符串的头部再去做匹配。

解题方法

KMP算法首先会预处理子串,生成一个名为next的数组,用于存储子串的最长公共前后缀的长度。然后,使用两个指针分别遍历目标字符串和子串,如果字符匹配,则两个指针都向前移动;如果字符不匹配,根据next数组移动子串的指针,而目标字符串的指针不动。如果子串的指针移动到了子串的末尾,那么就找到了一个匹配的子串。

复杂度

时间复杂度:

O ( n + m ) O(n+m) O(n+m),其中 n n n是目标字符串的长度, m m m是子串的长度。预处理子串的时间复杂度是 O ( m ) O(m) O(m),匹配的时间复杂度是 O ( n ) O(n) O(n)

空间复杂度:

O ( m ) O(m) O(m),需要额外的空间来存储 n e x t next next数组。

Code

class Solution {public int strStr(String s1, String s2) {return kmp(s1.toCharArray(), s2.toCharArray());}public int kmp(char[] s1, char[] s2) {int n = s1.length;int m = s2.length;int x = 0, y = 0;int[] next = nextArray(s2, m);while (x < n && y < m) {if (s1[x] == s2[y]) {x++;y++;} else if (y == 0) {x++;} else {y = next[y];}}return y == m ? x - y : -1;}public int[] nextArray(char[] s, int m) {if(m == 1) {return new int[]{-1};}int[] next = new int[m];next[0] = -1;next[1] = 0;int i = 2, cn = 0;while(i < m) {if(s[i - 1] == s[cn]) {next[i++] = ++cn;} else if(cn > 0) {cn = next[cn];} else {next[i++] = 0;}}return next;}
}
http://www.yayakq.cn/news/849957/

相关文章:

  • 纯ajax网站如何做seo网站运营成本预算
  • 新媒体公司网站怎么做wordpress远程包含
  • 网站建设技术流程云南住房和城乡建设厅网站
  • 怎么夸客户网站做的好中铁建设集团有限公司是国企还是央企
  • 建瓯企业网站建设企业网站添加图片
  • 网站建设专业的公司哪家好青岛市建设监理网站
  • 湖南建设人力资源官方网站宁波北仑做公司网站
  • 开封网站制作哪家好军人运动会官方网站建设目标
  • 淘宝网站制作多少钱网站技术架构图
  • 品牌网站建设 意义软件项目管理心得体会
  • 火车票网站建设什么是网站优化
  • 手机网站大小wordpress修改小工具
  • 天河高端网站建设深圳服务平台网站
  • 县城做信息网站赚不赚钱mvc网站开发
  • 哪些网站是php做的下载类网站做多久才有流量
  • 创建博客网站宁波网络推广方式
  • 简单的网站海北营销网站建设公司
  • 宁德市住房和城乡建设局网站打不开安徽网淮南
  • 网站的推广和宣传方式无为网站建设
  • 自己建立公司网站网站建设工作不足及整改
  • 苏州手机网站建设做公众号的网站有哪些功能
  • 高端网站建设设计公司seo网站推广软件 快排
  • 自己如何做网站教程网站如何做外链教程视频
  • 电子商务网站的建设 论文wordpress采集视频教程
  • 北京网站定制设计开发公司线上转线下营销推广方式
  • 陕西省房和城乡建设厅网站网站建设需要哪些功能
  • 深圳网站建设服务商哪些好?企业网站怎么自适应
  • 兰州新站点seo加盟wap网站服务器
  • .net网站与php网站网络营销推广公司名字
  • 网站建设费属于广告费吗如何推进网站建设