扩展KMP 算法
来源:互联网 发布:淘宝怎么管理店铺 编辑:程序博客网 时间:2024/06/10 21:47
扩展KMP算法描述:
给出模板串S和串T,长度分别为Slen和Tlen,要求在线性时间内,对于每个S[i](0<=i<Slen),求出S[i..Slen-1]与T的
最长公共前缀长度,记为extend[i]
代码:
import java.util.Scanner;public class Main {public int[] getNext(String s){int[] next=new int[s.length()+1]; next[0]=s.length(); int a=0,p=0; //记录匹配成功的字符的最远位置p,及起始位置a for(int i=1,j=-1;i<s.length();i++,j--){ if(j<0||i+next[i-a]>=p){ if(j<0){ p=i;j=0; } while(p<s.length()&&s.charAt(p)==s.charAt(j)){ p++;j++; } next[i]=j; a=i; } else{ next[i]=next[i-a]; } } return next;}public int[] getExtend(String s,String t){int[] extend=new int[s.length()];int[] next=getNext(t);int a=0,p=0;for(int i=0,j=-1;i<s.length();i++,j--){if(j<0||i+next[i-a]>=p){if(j<0){j=0;p=i;}while(p<s.length()&&j<t.length()&&s.charAt(p)==t.charAt(j)){p++;j++;}extend[i]=j;a=i;}else{extend[i]=next[i-a];}}return extend;}}
阅读全文
1 0
- 扩展KMP算法 Extend KMP
- 扩展的KMP算法,
- 扩展KMP算法
- 扩展KMP算法实现
- 扩展KMP算法
- 扩展KMP算法
- 扩展KMP算法
- KMP算法扩展
- 扩展kmp算法
- 扩展kmp算法
- 【hdu4333】扩展kmp算法
- 基础算法 扩展KMP
- 扩展kmp算法讲解
- 【算法】(扩展)KMP+manacher
- 扩展KMP算法
- 扩展kmp算法
- 扩展KMP算法
- 浅谈扩展KMP算法
- Ubuntu 文件夹右小角有锁的问题解决
- 第3部分 装载与动态链接---(7)动态链接
- dede后台用户名和密码不知道办?
- STL顺序容器之双端队列deque
- iOS-【转载】架构模式
- 扩展KMP 算法
- 二进序列制转化英文句子
- 动态更改TerrainDetail的贴图
- curl用法
- 【量亿数据-美股数据】趋势线详解
- 第十篇 磁盘与文件系统管理
- 检查网络连接情况
- jQuery中的join方法
- java获取系统时间(string和date)