数据结构实验之串一:KMP简单应用
来源:互联网 发布:手机照片怎么导入mac 编辑:程序博客网 时间:2024/06/07 13:48
数据结构实验之串一:KMP简单应用
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
给定两个字符串string1和string2,判断string2是否为string1的子串。
Input
输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。
Output
对于每组输入数据,若string2是string1的子串,则输出string2在string1中的位置,若不是,输出-1。
Example Input
abca12345645abcddd
Example Output
#include<stdio.h>#include<string.h>int next[1000001];void get_next(char *p){ int i=0,j=-1; next[0]=-1; int len=strlen(p); while(i<len-1) { if(j==-1||p[i]==p[j]) { i++; j++; next[i]=j; } else j=next[j]; }}int kmp(char *s,char *p){ int len1=strlen(s); int len2=strlen(p); memset(next,0,sizeof(next)); get_next(p); int i=0,j=0; while(i<len1&&j<len2) { if(j==-1||s[i]==p[j]) { i++; j++; } else { j=next[j]; } } if(j>=len2) return i-len2+1; else return -1;}int main(){ char s[1000001],p[1000001]; while(~scanf("%s%s",s,p)) { printf("%d\n",kmp(s,p)); } return 0;}
14-1
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简单应用
- 如何利用SQL注入进行爆库
- 利用GPIO的命令控制树梅派的GPIO
- VS2013+QT5简单使用
- 基本数据类型(二)
- Java之属性封装
- 数据结构实验之串一:KMP简单应用
- hive 2.1.0安装
- Windows 安装 OS X系统
- Activity 横竖屏切换
- 第九周 oj训练 等比数列
- apache是什么
- Java网络编程之TCP网络通信
- 【HDU4542】【反素数+DFS+暴力打表】【给出一个数K,和两个操作,如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K,如果操作是1,就求出一个最小的X,满足X的约数个数为X-K】
- ionic使用1 - ionic环境搭建(windows调试,centos7虚拟机保存代码)