HDU2203:亲和串

Problem Description

人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。 亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。

Input

本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。

Output

如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。

Sample Input

AABCD CDAA ASD ASDF

Sample Output

yes no

//一般来说,像这种比较简单的,可以用KMP的题目,有一部分都是可以用函数strstr解决的

//char *strstr(str1,str2)

//返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;
char s1[250000],s2[100000];

int main()
{
    while(cin>>s1>>s2)
    {
       int str=strlen(s1);
       for(int i=str;i<2*str-1;i++)
       s1[i]=s1[i-str];
       char *ch=strstr(s1,s2);
       if(ch==NULL)
       cout<<"no"<<endl;
       else
       cout<<"yes"<<endl;
    }
    return 0;
}
时间: 2024-11-02 15:50:27

HDU2203:亲和串的相关文章

HDU2203 亲和串【KMP】

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2203 题目大意: 给定亲和串的定义:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中, 那么我们就说s2 是s1的亲和串.现在给你两个字符串s1和s2,判断s2是否是s1的亲和串. 思路: 先判断s2的串长度是否小于等于s1的长度,因为如果s2的串长度比s1还要长的话,s2是不 可能是s1的亲和串.然后在s1的串后边在街上s1的串,对s1和s2进行KMP算法,看s1的串 中是否

亲和串 (hdu 2203 KMP)

亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8049    Accepted Submission(s): 3719 Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长

hdu 2203 亲和串 kmp

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2203 思路: Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题.亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中

【HDU 2203】亲和串

题 题意 给你一个字符串s1,字符串s2,s1循环移位,使s2包含在s1中,则s2 是s1的亲和串 分析 把s1自身复制一遍接在后面. 方法一: 用strstr函数. 方法二: KMP算法. 方法三: 用C++的string的find函数. 代码 方法一: #include<cstdio> #include<cstring> char s1[200009],s2[100009]; int len; int main() { while(~scanf("%s",&

亲和串(两种方法妙解)

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9047 Accepted Submission(s): 4121 Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判

HDU 2203 亲和串(kmp)

Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题. 亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串. Input 本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二

HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)

Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题. 亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串. Input 本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二

Hdoj 2203 亲和串 【KMP】

亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9047 Accepted Submission(s): 4121 Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道

亲和串

Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题. 亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串. Input 本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串