KMA算法实现
来源:互联网 发布:淘宝双十一红包群 编辑:程序博客网 时间:2024/06/02 05:30
KMA算法实现
/** * KMA字符串匹配算法 * @author KeXin * */public class Test{public static int[] ComputePrefix(String p){char[] P = p.toCharArray();int m = P.length;int[] t = new int[m];t[0] = 0;int k = 0;for(int q = 1;q<m;q++){while(k>0&&P[k]!=P[q])k = t[k];if(P[k]==P[q])k = k+1;t[q] = k;}return t;}public static void KMA(String t,String p){char[] P = p.toCharArray();char[] T = t.toCharArray();int n = T.length;int m = P.length;int[] pai = ComputePrefix(p);for(int i = 0;i<m;i++)System.out.print(pai[i]+"\t");System.out.println();int q = 0;for(int i = 0;i<n;i++){while(q>0&&P[q]!=T[i])q = pai[q];if(P[q]==T[i])q = q+1;if(q==m){System.out.println("Matches in "+(i-m+1));q = 0;}}}public static void main(String[] args) {//String p = "ababaca";//String t = "aaababacaaaababacab";String p = "ab";String t = "abcabcabdabeba";KMA(t,p);}}
阅读全文
1 0
- KMA算法实现
- KMA algorithmic techniques
- 内核内存分配器(Kernel Memory Allocator, KMA)
- 用PYTHON大量下載www.kma.go.kr的天氣圖
- 算法实现
- 算法实现
- 算法和算法实现
- 【算法】扑克发牌算法实现
- Java算法:二分法算法实现
- 《算法导论》算法实现收集
- 【算法】快排算法实现
- 算法导论中算法实现
- 《算法导论》Dijkstra算法实现
- 基数排序算法,讲解+算法实现
- 梅西迭代算法的实现
- 如何实现DES算法
- 银行家算法实现
- CRC算法与实现
- 【java学习】java三大器
- 1148: 考试排名
- macOS 10.12 + Anaconda + Matlab 2016b + Caffe(CPU mode)
- CodeForces
- 01背包问题(两种状态)UVa-12563
- KMA算法实现
- 插入排序代码
- 听张方方学长分享经验有感
- 模态框modal
- Linux 中shell学习
- 数据探索和预处理可能涉及到的算法
- List在执行remove方法不能删除指定的对象
- 【设计模式】—— 职责链模式ChainOfResponsibility
- 三子棋小游戏