(模板题)sdut 2125 数据结构实验之串二:字符串匹配(KMP)
来源:互联网 发布:mac 系统的 制谱软件 编辑:程序博客网 时间:2024/04/29 19:24
数据结构实验之串二:字符串匹配
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定两个字符串string1和string2,判断string2是否为string1的子串。
输入
输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2,string1和string2中保证不出现空格。(string1和string2大小不超过100字符)
输出
对于每组输入数据,若string2是string1的子串,则输出"YES",否则输出"NO"。
示例输入
abca12345645abcddd
示例输出
YESYESNO
提示
来源
赵利强
示例程序
#include <stdio.h>#include <string.h>int next[100];void getnext(char ch1[]){ int i=0,i1=-1,len; next[i]=i1; len=strlen(ch1); while(i<len) { if(i1==-1||ch1[i]==ch1[i1]) { i++; i1++; next[i]=i1; } else { i1=next[i1]; } }}int kmp(char ch[],char ch1[]){ int i=0,i1=0,len,len1; len=strlen(ch); len1=strlen(ch1); while(i<len&&i1<len1) { if(i1==-1||ch[i]==ch1[i1]) { i++; i1++; } else { i1=next[i1]; } } if(i1==len1) { return i-len1+1; } else { return -1; }}int main(){ char ch[101],ch1[101]; while(scanf("%s",ch)!=EOF) { scanf("%s",ch1); getnext(ch1); if(kmp(ch,ch1)!=-1) { printf("YES\n"); } else { printf("NO\n"); } } return 0;} /**************************************Problem id: SDUT OJ 2125 Code Len: 1088B Result: Accepted Take Memory: 256K Take Time: 0MS Submit Time: 2016-07-20 10:40:55 **************************************/
0 0
- (模板题)sdut 2125 数据结构实验之串二:字符串匹配(KMP)
- SDUT 2125 数据结构实验之串二:字符串匹配
- SDUT 2125 数据结构实验之串二:字符串匹配
- sdut oj2125 数据结构实验之串二:字符串匹配(BF与KMP做法)
- SDUT OJ 数据结构实验之串二:字符串匹配(KMP做法)
- [SDUT](2125)数据结构实验之串二:字符串匹配 ---字符串匹配(串)
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 线段树(区间更新与区间查询)——Just a Hook ( HDU 1698 )
- scala 的模式匹配与类型系统
- First Blog
- block与代理
- Number of 1 Bits
- (模板题)sdut 2125 数据结构实验之串二:字符串匹配(KMP)
- 【JVM】——GC机制之GC算法
- JAVA面试题
- jvm内存参数设置
- POJ2226
- 最大熵模型
- vector::cbegin (c++11)
- mysql5.6开启慢查询和之前的版本参数不同
- nana gui 控件拖拽