kmp模式匹配算法

作者:原创时间:2022-03-11
文档

kmp模式匹配算法:

kmp模式匹配算法主要是对朴素的模式匹配算法的改进,假设有StringA和String B,i为A的首个字母的下标,j为B的首个字母的下标,即i=0,j=0,现要在A中匹配B,若用朴素的模式匹配算法,则i需要不断的回溯,如A=acbxacbd,B=abcd,当i=3,j=3时,发现字符不相等,如果使用的是朴素的模式匹配算法,则需要将i回溯为1,即i=i-j+1,而j=0。

若用的是KMP模式匹配算法,i不需要回溯,只有j根据字符串B的具体情况回溯到相应位置。

KMP解决了朴素匹配模式算法中的i和j的回溯问题,提高了字符串匹配的效率

KMP算法主要分为两部份

第一部分为方法getNext(),其数组的元素为在对应字符不相等时j需要回溯到字符串B的相应位置

public void getNext(String str,int[] next){
  int i=0,j=-1;
  next[0] = -1;
  while(i

显示全文
js数组遍历方法 python 引用 idea的maven配置 maven安装配置 java filereader java stream java random java lambda java hashmap java foreach java final java json java 泛型 python range函数 linux ftp js 字符串转数字 电脑忘记开机密码怎么办 两个二维码怎么拼一起 怎样查看微信删除的聊天记录 微信扫码不能扫了怎么办 js json对象 js 遍历json java concat python调用dll python strip函数 python configparser模块 oracle coalesce rstudio使用教程 mysql去重复 保留一条 js set方法 python中get函数用法 java get和set方法 object转bigdecimal object 转list python 交集 js读取文件 linux 格式化u盘 deque java java process armoury crate打不开