KMP_java实现
来源:互联网 发布:姜文 王朔 知乎 编辑:程序博客网 时间:2024/06/05 17:06
package test;public class KMP {public int[] getNext(String p) {if(p == null || p.length() == 0)return null;int[] next = new int[p.length()];int i = 0;int j = -1;next[0] = -1;while(i < p.length() - 1) {if(j == -1 || p.charAt(i) == p.charAt(j)) {i++;j++;if(p.charAt(i) == p.charAt(j))next[i] = next[j];elsenext[i] = j;} else {j = next[j];}}return next;}public int KMP1(String s, String p) {if(s == null || p == null)return -1;int[] next = getNext(p);int res = -1;int i = 0;int j = 0;while(i < s.length()) {if(j == -1 || s.charAt(i) == p.charAt(j)) {i++;j++;} else {j = next[j];}if(j == p.length()) {res = i - p.length();break;}}return res;}public static void main(String[] arg) {KMP kmp = new KMP();System.out.println(kmp.KMP1("abcd", "abcdef"));}}
0 0
- KMP_java实现
- 实现
- 实现
- 红黑树实现 实现代码
- java实现排列组合实现
- 实现Runnable 实现线程
- 实现ViewPager多种实现
- 双向LSTM实现实现
- 实现缓存 java实现
- 三子棋的实现的实现的实现
- 四则运算实现
- 继承实现
- 重载实现
- 实现缩略图
- split实现
- 实现缩略图
- wmi实现
- 实现缩略图
- Android中使用Picasso将图片直接转换为圆形
- HDU4417 Super Mario(树状数组)
- 专题三 第九题
- 修正的带PipeLine的Shell
- Win10系统开启Linux Bash命令行
- KMP_java实现
- Tricks(四十六)—— 四个数中最小值的实现
- Leetcode #62. Unique Paths 路径搜寻 解题报告
- Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
- 面试之路(23)-递归和循环优缺点详解
- Hibernate多对多中间表有多个字段字段的注解配置方式(二)
- 简易计算器(逆波兰算法)
- SDAU dp专题 1003
- Hibernate多对多中间表有多个字段字段的注解配置方式(三)