个人理解---KMP与Next数组详解
int KMP(char Mum[], char Sub[])//求子串Sub在母串Mum第一次出现的开始下标,下标从0开始;
{
int Lm = strlen(Mum); int Ls = strlen(Sub); int i = 0, j = 0; while(i < Lm)
{
if(j==-1 || Mum[i]==Sub[j])//当第一个字母都不同时,j会减小为Next[j]=-1,但是不能再减了
{
i++;
j++;
}
else
j = Next[j]; if(j==Ls)//当j到达了子串的长度说明已经匹配完成;
return i-Ls;
}
}
void GetNext(char Sub[])
{
int Ls = strlen(Sub); int i, j; Next[0] = -1; i = -1; j = 0; while(j < Ls)
{
if( i==-1 || Sub[i] == Sub[j])//当满足这个条件时; 都要向后退一个;并且要更新Next;
{
i ++;
j ++;
Next[j] = i;//Next[j] = Next[j-1] + 1;写成这种形式,我感觉也行,但是有些题目过不了-_-;
}
else i = Next[i];
}
}
个人理解---KMP与Next数组详解的更多相关文章
- KMP算法 Next数组详解
题面 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.如果你不知道这是什么意思也不要问,去百 ...
- 【转载】KMP入门级别算法详解--终于解决了(next数组详解)
[转载]https://blog.csdn.net/LEE18254290736/article/details/77278769 对于正常的字符串模式匹配,主串长度为m,子串为n,时间复杂度会到达O ...
- 3.awk数组详解及企业实战案例
awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...
- (转)awk数组详解及企业实战案例
awk数组详解及企业实战案例 原文:http://www.cnblogs.com/hackerer/p/5365967.html#_label03.打印数组:1. [root@nfs-server t ...
- JavaScript进阶(十)Array 数组详解
JS array 数组详解 数组的声明方法 arrayObj = new Array(); 的数组 ,并且第一位是5 数组的运算(传地址) var t2=new Array(); t2[0]=1; t ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- “全栈2019”Java第三十一章:二维数组和多维数组详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第三十章:数组详解(下篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第二十九章:数组详解(中篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
随机推荐
- python不同package下相互调用
路径如: /path/dir1/a.py /path/dir2/b.py 调用举例如: 在/path/dir2/b.py中调用 a模块 import sys sys.path.append(" ...
- 页面的checkbox框的全选与反选
if (typeof jQuery == 'undefined') { alert("请先导入jQuery");} else { jQuery.extend({ ...
- Extjs 下拉框
刚刚熟练了easyui控件的使用,又開始了如今的这个项目. 这个项目是个半成品.前端使用的是Extjs控件,jsp中没有代码.就引用了非常多的js...于是乎有种不知所措了呀. . . 说实话特别的不 ...
- [转]五分钟看懂UML类图与类的关系详解
在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(Dependency)和关联(Association).其中关联又分为 ...
- The Rox Java NIO Tutorial
FQ之后访问 http://rox-xmlrpc.sourceforge.net/niotut/
- 给嵌入式ARM+Linux的初学者
http://blog.csdn.net/lucykingljj/article/details/40619671
- JQuery------jQuery.parseHTML()的使用方法
代码: $(document).ready(function () { var data = jQuery.parseHTML("<p>你好</p>"); ...
- POJ 1426 Find The Multiple(背包方案统计)
Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose ...
- css图片宽高相等设置
<div class="image-header"> <img src="demo.jpg"> </div> .image- ...
- swift - 之TabBarController的用法
TabBarController的使用,下面记录两种写法,代码如下: TabBarItem系统自带图标样式(System)介绍: Custom:自定义方式,配合Selected Image来自定义图标 ...