KMP算法(Java、创建next数组)
2022/2/20 21:01:35
本文主要是介绍KMP算法(Java、创建next数组),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import java.util.Arrays; public class KMP { public static void getNext(char[] str,int[] next) { next[0]=-1; int i=0,j=-1; while(i<str.length) { if(j==-1) { i++; j++; }else if(str[i]==str[j]) { i++; j++; next[i]=j; }else { j=next[j]; } } } public static int search(char[] str1,char[] str2,int[] next) { int i=0,j=0; while(i<str1.length && j<str2.length) { if(j==-1 || str1[i]==str2[j]) { i++; j++; }else { j=next[j]; } } if(j==str2.length) { return i-j; }else { return -1; } } public static void main(String[] args) { String str1="ABCABCAABCABCD"; String strPattern="ABCABCD"; int[] next=new int[strPattern.length()]; getNext(strPattern.toCharArray(),next); int i=search(str1.toCharArray(),strPattern.toCharArray(),next); System.out.println(Arrays.toString(next)); System.out.println(i); } }
这篇关于KMP算法(Java、创建next数组)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-08如何在敏捷项目中实现高效测试?
- 2024-07-08用户故事一定要有 “So that...” 吗?
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt