KMP算法
来源:互联网 发布:淘宝白菜群怎么得佣金 编辑:程序博客网 时间:2024/05/21 04:21
//KMP算法实现字符串的匹配(查找)class KmpDemo{public static void main(String[] args) {String target="abcabcbcfhgefja";String pattern="bcf";int index=indexOf(target,pattern,0);System.out.println("返回第一个子串的位置:"+index);}public static int indexOf(String target,String pattern,int start){int i=start;int j=0;int[] next=getNext(pattern);if(target!=null && pattern!=null && target.length()>=pattern.length() && pattern.length()>0){while(i<target.length()){if(j==-1|| target.charAt(i)==pattern.charAt(j))//继续比较后续的字符{i++;j++;}elsej=next[j]; //获得下一次匹配的字符序号if(pattern.length()==j)return i-j;//返回匹配成功的字串序号}}return -1; //不成功返回-1}private static int[] getNext(String pattern) //next数组{int j=0;int k=-1;int[] next=new int[pattern.length()];next[0]=-1;while(j<pattern.length()-1){if(k==-1 ||pattern.charAt(j)==pattern.charAt(k) ){j++;k++;if(pattern.charAt(j)!=pattern.charAt(k)){next[j]=k;}elsenext[j]=next[k];}elsek=next[k];}return next;}}
0 0
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- kmp算法
- KMP算法
- KMP算法
- KMP算法
- KMP算法
- KMP 算法
- kmp算法
- KMP算法
- kmp算法
- KMP算法
- KMP算法
- kmp算法
- kmp算法
- KMP算法
- KMP算法
- java.util.ConcurrentModificationException 解决办法
- C 语言基础(二)
- jmeter使用代理录制方法
- ubuntu-ssh
- 工作笔记
- KMP算法
- Android 自定义loading
- 关于This support library should not use a different version than the compilesdkversion
- iOS 应用发布
- xUtils3.0使用介绍
- 线程间的通信、同步方式与进程间通信方式
- 今天写的两个程序。
- oracle11g导出数据库不完善问题解决
- Theano中文翻译教程(二). 基础骗之 More Examples