kmp入门--hd 2203 亲和串
来源:互联网 发布:数控车床螺纹编程实例 编辑:程序博客网 时间:2024/06/05 15:03
亲和串
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 15450 Accepted Submission(s): 6817
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
一直编译错误 原来不能定义next数组,如定义会出现二义性,加了个一,不仅不编译错误,而且直接ac了, 。。。。。。内心也是很无奈的,
关于这道题,就是kmp的简单运用,建议kmp运用熟练,再来做,这就是一个模板题
#include<iostream>#include<string>#include<string.h>using namespace std;#define N 100010char s1[N+N],s2[N];int i,j,k;int next1[N];void get_next(char t[],int next1[]){ int len=strlen(t); k=-1,j=0; next1[0]=-1; while(j<len) { if(k==-1||t[k]==t[j]) { k++; j++; if(t[k]!=t[j]) next1[j]=k; else next1[j]=next1[k]; } else k=next1[k]; //回溯 前缀k }}int kmp(char s[],char t[]){ int lens=strlen(s),lent=strlen(t); get_next(t,next1); i=j=0; while(i<lens&&j<lent) { if(j==-1||s[i]==t[j]) i++,j++; else j=next1[j]; } if(j>=lent) return 1; else return 0;}int main(){ while(cin>>s1>>s2) { int l=strlen(s1); for(i=l;i<l+l;i++) s1[i]=s1[i-l]; if(kmp(s1,s2)) cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0;}
阅读全文
0 0
- kmp入门--hd 2203 亲和串
- hdu 2203 亲和串 (kmp入门)
- hdu 2203 亲和串 KMP入门
- HDU-2203 亲和串(KMP入门)
- Kmp 入门题 hdu 2203 亲和串
- KMP hdu-2203-亲和串
- HDU 2203 亲和串 KMP
- hdu 2203 亲和串 kmp
- hdu 2203 亲和串(KMP)
- 亲和串 - HDU 2203 KMP
- 【KMP】 HDOJ 2203 亲和串
- 【HDU】2203 亲和串 KMP
- Hdoj 2203 亲和串 【KMP】
- hdoj-2203-亲和串【KMP】
- HDU 2203(KMP) 亲和串
- HDU 2203 亲和串 (KMP)
- hdu 2203 亲和串 KMP
- HDU - 2203 亲和串(Kmp)
- SQL注入之盲注sqli-labs-master
- mybatis中自定义ObjectFactory
- oracleday22(备份 恢复 卸载)
- package com.w3ang.learning.https; import java.security.cert.CertificateException; import java.secur
- 数组的常用编辑
- kmp入门--hd 2203 亲和串
- LaTeX在双栏模式下插入跨栏图表
- 我账号的私信总是被删,请勿私信联系
- 第2课:通过案例对SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构
- 使用Xpath读取xml文件
- XPath路径表达式
- 曙光初现
- 管道流进行线程间通信
- 使用Xpath递归输出所有数据