数据结构实验之串一:KMP简单应用
来源:互联网 发布:邪器 知乐封面原画 编辑:程序博客网 时间:2024/06/10 13:47
数据结构实验之串一:KMP简单应用
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic
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 <cstdio>#include <cstring>#include <algorithm>using namespace std;char a[1000000+5], b[1000000+5];int next[1000000+5];void getnext() { next[0]=-1; int i=0, j=-1; while(b[i]!='\0') { if(j==-1||b[i]==b[j]) { i++; j++; next[i]=j; } else j=next[j]; }}void kmp() { getnext(); int i=0, j=0; int n=strlen(a), m=strlen(b); while(i<n&&j<m) { if(a[i]==b[j]||j==-1) { i++; j++; } else j=next[j]; } if(j>=m) printf("%d\n", i-m+1); else printf("-1\n");}int main() { while(~scanf("%s %s", a, b)) { kmp(); } return 0;}
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简单应用
- 反向传播BP算法
- java--关于动态代理
- 快速使用开源库实现下拉刷新----PullRefreshLayout
- Visual Studio 2012,运行时窗口闪退解决方法
- WKWebView API精讲(OC)
- 数据结构实验之串一:KMP简单应用
- 堆、栈、全局区静态区、文字常量区、程序代码区
- VC++60 第二章 按钮、编辑框和复选框
- 好用的程序构建工具scons
- (一)python 基础教程——python简介
- MySQL 之 CASE WHEN 的使用方法
- Win7上eclipse无插件提交Hadoop2.2分布式作业
- VC++60 第三章 使用Activex控件
- cmd 文件批量添加前缀