【2772】KMP的简单应用 sdutOJ
来源:互联网 发布:mac系统安装u盘制作 编辑:程序博客网 时间:2024/06/16 18:56
KMP简单应用
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定两个字符串string1和string2,判断string2是否为string1的子串。
输入
输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。
输出
对于每组输入数据,若string2是string1的子串,则输出string2在string1中的位置,若不是,输出-1。
示例输入
abca12345645abcddd
示例输出
14-1
#include <stdio.h>#include <string.h>#include <stdlib.h>int next[1000010];char a[1000010],b[1000010];void get_next(){ int i=0; int j=-1; next[0]=-1; int len=strlen(b); while(i<len) { if(j==-1||b[i]==b[j]) { i++; j++; next[i]=j; } else j=next[j]; }}void KMP(){ int i=0,j=0; int len1=strlen(a); int len2=strlen(b); while(i<len1&&j<len2) { if(j==-1||a[i]==b[j]) { i++; j++; } else j=next[j]; } if(j>=len2) printf("%d\n",i-j+1); else printf("-1\n");}int main(){ while(~scanf("%s %s",a,b)) { get_next(); KMP(); } return 0;}
0 0
- 【2772】KMP的简单应用 sdutOJ
- SDUTOJ 2772--KMP简单应用
- SDUTOJ 2772 KMP简单应用
- SDUTOJ KMP简单应用 【KMP】
- kmp的简单应用
- KMP的简单应用
- KMP的简单应用(SDUT 2772)
- sdut2772 KMP的简单应用
- hdu 1711(KMP的简单应用)
- Period(kmp简单的应用 next从零开始 )
- hdu 4763 kmp的简单应用
- sdutoj 3926 blue的二叉树 先序遍历+KMP
- KMP简单应用
- SDUT KMP简单应用
- kmp简单应用
- KMP简单应用
- KMP简单应用
- KMP简单应用
- ipython常用功能, iPython 安装 比shell好用
- Data语意学之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)
- excel转CSV,发布后无效果或报80070005错误的解决方案
- HDU 4946 Area of Mushroom
- Mysql MERGE引擎简介
- 【2772】KMP的简单应用 sdutOJ
- poj 2531 Network Saboteur(随机化)
- AdaBoost--从原理到实现(Code:Python)
- android中ellipsize的使用
- 过度release会产生的问题
- hdu1203(01背包)
- 线性表的逻辑定义
- Climbing Stairs
- java中string 类型的对象间比较的学习笔记