SDUT 2125 数据结构实验之串二:字符串匹配
来源:互联网 发布:计算机端口号 编辑:程序博客网 时间:2024/05/16 05:08
数据结构实验之串二:字符串匹配
Time Limit: 1000MSMemory Limit: 65536KB
SubmitStatistic Discuss
Problem Description
给定两个字符串string1和string2,判断string2是否为string1的子串。
Input
输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2,string1和string2中保证不出现空格。(string1和string2大小不超过100字符)
Output
对于每组输入数据,若string2是string1的子串,则输出"YES",否则输出"NO"。
Example Input
abca12345645abcddd
Example Output
YESYESNO
Hint
思路同SDUT2772题
#include<cstdio>#include<cstring>#define INF 1000005using namespace std;int next[1000005];void getnext(char *s,int *next){ int j,k; j=0;k=-1; next[0]=-1; int len=strlen(s); while(j<len-1) { if(k==-1||s[j]==s[k]) { j++;k++; next[j]=k; } else k=next[k]; }}int kmp(char *s1,char *s2){ int i=0,j=0; getnext(s2,next); int len1=strlen(s1); int len2=strlen(s2); while(i<len1&&j<len2) { if(j==-1||s1[i]==s2[j]) { i++; j++; } else j=next[j];//i不变,j后退。 } if(j>=len2) return (i-len2+1); else return -1;}int main(){ char str1[INF],str2[INF]; while(scanf("%s %s",str1,str2)!=EOF) { int num=kmp(str1,str2); if(num==-1) printf("NO\n"); else printf("YES\n"); } return 0;}
阅读全文
0 0
- SDUT 2125 数据结构实验之串二:字符串匹配
- SDUT 2125 数据结构实验之串二:字符串匹配
- [SDUT](2125)数据结构实验之串二:字符串匹配 ---字符串匹配(串)
- (模板题)sdut 2125 数据结构实验之串二:字符串匹配(KMP)
- sdut oj2125 数据结构实验之串二:字符串匹配(BF与KMP做法)
- SDUT OJ 数据结构实验之串二:字符串匹配(KMP做法)
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- 数据结构实验之串二:字符串匹配
- python问题:ValueError: operands could not be broadcast together with shapes (100,3) (3,1)
- 对于Hibernate一些介绍(新手见谅)
- js日期格式转换
- The third
- 背包九讲
- SDUT 2125 数据结构实验之串二:字符串匹配
- 版本控制概念
- ubuntu16 php 以root 权限运行shell命令
- Javascript中函数声明
- AT89C51定时器
- 图片预览上传
- Num(数论(或打表))
- android+OKHTTP
- python高性能web框架Sanic学习--url