一.实验目的:
熟练掌握串的运用,以及线性表、栈、队列等的基本操作;理解 KMP 模式 匹配算法的原理,能够利用该算法解决实际问题。
二.实验内容与要求:
- 设计一个java程序;
- 通过键盘输入待查找的模式串,求取并显示 next 数组;
- 判断该程序代码中是否包含该模式串,如果包含,输出左右该模式串在程序 代码中文件中的位置(包括行数和该行的第几个字符) ;
- 用 KMP 算法进行实现。
四.代码实现:
package KMP;
/**
* <一句话功能描述> kmp算法
* @AUTHER 露某人家园
* @CREAT 2021/4/15
*/
public class kmp2_study {
public static void main(String[] args) {
String str1 = "AABAABAABBAA";
String str2 = "BAA";
int[] next = KMP.kmpNext(str2);
int res = KMP.kmpSearch(str1, str2, next);
System.out.println("子串在源字符串的index=" + res);
for(int i = 0; i < next.length; i++){
System.out.println(next[i]);
}
// System.out.println(next.l