数据结构实验之串一:KMP简单应用
来源:互联网 发布:部落冲突箭塔数据 编辑:程序博客网 时间:2024/06/06 00:30
数据结构实验之串一: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
#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>using namespace std ;int next[1000001] ;char string1[1000011] , string2[1000011] ;void get_next(char a[],int l1){ int i = 0 , j = -1; next[0]=-1; while(i<l1) { if(j==-1||a[i]==a[j]) { i++; j++; if(a[i]!=a[j]) next[i]=j; else next[i] = next[j] ; } else j = next[j] ; }}int kmp(char a[] , char b[] , int l1 , int l2){ int i = 0 ; int j = 0 ; while(i<l1&&j<l2) { if(j==-1||a[i]==b[j]) { ++i; ++j; } else j = next[j] ; } if(j>=l2) return i - l2 +1 ; else return -1 ;}int main(){ int len1 , len2 ; while(cin>>string1>>string2) { len1 = strlen(string1); len2 = strlen(string2); get_next(string2,len2); int k = kmp(string1,string2,len1,len2); cout << k << endl ; } return 0 ;}
数据结构实验之串一: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
0 0
- 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简单应用
- SDUT 2772 数据结构实验之串一:KMP简单应用
- 【数据结构】顺序队列 如何实现栈增长
- 第9周项目2-对称矩阵压缩存储的实现与应用(1)
- 分别解释final,finally,finalize是什么?
- 利用js脚本实现自动加载
- SAP ABAP 字符串操作
- 数据结构实验之串一:KMP简单应用
- 获取动态生成的js元素
- 在用studio导入一个项目长时间 build 解决办法
- 上传已有项目到git服务器
- LeetCode152—Maximum Product Subarray
- Ubuntu 秘笈之命令行下管理浏览器书签
- 漫漫编程路上学到的宝贵经验!
- 第10周项目2-二叉树遍历的递归算法
- Eclipse使用工作集管理项目