数据结构实验之串一:KMP简单应用(java实现)
来源:互联网 发布:赣州四中官网网络阅卷 编辑:程序博客网 时间:2024/06/10 17:41
数据结构实验之串一:KMP简单应用
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
给定两个字符串string1和string2,判断string2是否为string1的子串。
Input
输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。
Output
对于每组输入数据,若string2是string1的子串,则输出string2在string1中的位置,若不是,输出-1。
Example Input
abca12345645abcddd
Example Output
14-1
Hint
Author
cjx
import java.util.Scanner;public class test{public static int[] next(String sub) { int[] next = new int[sub.length()];//next数组长度 int i = 0, j = -1;// 初始条件 next[0] = -1; while (i < sub.length() - 1) // 根据已知的前j位推测第j+1位 { if (j == -1 || sub.charAt(i) == sub.charAt(j)){ next[++i] = ++j; } else{ j = next[j]; } } return next; } public static int kmp(String str,String sub,int[] next) { int i = 0; int j = 0; while (i < str.length() && j < sub.length() ) { if (j == -1 || str.charAt(i) == sub.charAt(j)) { i++; j++; } else { j = next[j]; } } if (j < sub.length()) { return -1; } else{ return i - sub.length() + 1; // 返回模式串在主串中的头下标 } } public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ String str = cin.next(); String sub = cin.next(); int[] next = next(sub); System.out.println(kmp(str,sub,next)); } }}
0 0
- 数据结构实验之串一:KMP简单应用(java实现)
- KMP算法 --数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT 2272 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT2772数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用 (sdut oj2772)
- 数据结构实验之串一:KMP简单应用
- sdut oj2772 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 让sublime一行显示更多代码出现横向的滚动条,以及修改默认tab键长度
- 计算机网络之面试常考题
- leetcode求栈中最小的元素
- Android 热修复插件之AndFix
- spring mvc拦截器和<mvc:annotation-driven />的详解
- 数据结构实验之串一:KMP简单应用(java实现)
- BZOJ 2120 数颜色
- 理解String的compareTo()方法返回值
- Spring MVC静态资源处理
- 为什么判断 std::vector 是否为空时,用 if(0==vec.size()) 提示效率低,但用 if (vec.empty()) 正常?
- Android四大基本组件介绍与生命周期
- Atitit 软件项目非法模块与功能的管理与 监狱管理的对比 原理与概论attilax总结
- 算法Week08.04 - LeetCode 46. Permutations
- 关于客户端断开连接后服务器抛出异常Connection reset