HDU 2203 亲和串(简单KMP,不过需要预判断)
来源:互联网 发布:音视频格式转换软件 编辑:程序博客网 时间:2024/06/05 00:33
亲和串
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6047 Accepted Submission(s): 2738
Problem Description
人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。
亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。
亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。
Input
本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。
Output
如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。
Sample Input
AABCDCDAAASDASDF
Sample Output
yesno
题目大意:第一串如果循环移位,把前面的移到后面去,可以含住第二串的话,输出yes,否则输出no
解题思路:把第一串复制待会儿匹配用,标准KMP.
题目地址:亲和串
AC代码:
#include<iostream>#include<string>#include<cstring>#include<cstdio>using namespace std;char s1[100005],s2[100005],s[200005];int next[100005],len1,len2,len;void getnext() //s2是模式串{ int i,j; next[0]=0,next[1]=0; for(i=1;i<len2;i++) { j=next[i]; while(j&&s2[i]!=s2[j]) j=next[j]; if(s2[i]==s2[j]) next[i+1]=j+1; else next[i+1]=0; }}int KMP(){ int i,j=0; for(i=0;i<len;i++) { while(j&&s[i]!=s2[j]) j=next[j]; if(s[i]==s2[j]) j++; if(j==len2) return 1; } return 0;}int main(){ while(~scanf("%s%s",s1,s2)) { len1=strlen(s1); len2=strlen(s2); len=2*len1; strcpy(s,s1); strcat(s,s1); //把s1复制成两倍存在s3中 getnext(); if(KMP()) puts("yes"); else puts("no"); }}
- HDU 2203 亲和串(简单KMP,不过需要预判断)
- KMP hdu-2203-亲和串
- HDU 2203 亲和串 KMP
- hdu 2203 亲和串 kmp
- hdu 2203 亲和串(KMP)
- 亲和串 - HDU 2203 KMP
- 【HDU】2203 亲和串 KMP
- HDU 2203(KMP) 亲和串
- HDU 2203 亲和串 (KMP)
- hdu 2203 亲和串 KMP
- HDU - 2203 亲和串(Kmp)
- HDU 2203 亲和串 KMP
- hdu 2203 亲和串(KMP|strstr())
- HDU 2203 亲和串(KMP:循环移位)
- HDU 2203 亲和串 KMP解法
- HDU 2203 亲和串(kmp)
- 亲和串 (hdu 2203 KMP)
- hdu 2203 亲和串 (kmp入门)
- 黑马程序员---多线程
- Java 线程互斥
- 如何把河南网站建设的有吸引力
- hdu 1986
- 每日一题(64) - 打印1到最大的n位数
- HDU 2203 亲和串(简单KMP,不过需要预判断)
- struts标签 checkboxlist 换行解决办法
- 关于法线变换
- java入门学习(十三)运算语句 break,cotinue,return
- 简单入门程序:汉诺塔
- 卸载apache2和php
- 个人测试专用,无其他意义
- Java Class对象
- 解决数据库 Table 'content_tags' is marked as crashed and should be repaired 表损坏问题