亲和串

我对字符串的使用真的是太弱了TAT

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

 1 第一种    
 2 
 3 
 4 
 5 #include<stdio.h>
 6 
 7 #include<string.h>
 8 
 9 int main()
10 
11 {
12 
13 char a[100050],b[100050];
14 
15 int n,l1,l2,i;
16 
17 while(gets(a))
18 
19 {
20 
21 gets(b);
22 
23 l1=strlen(a);
24 
25 for(i=0;i<l1;i++)
26 
27 a[l1+i]=a[i];
28 
29 a[2*l1]='';
30 
31 if(strstr(a,b)) puts("yes");
32 
33 else puts("no");
34 
35 }
36 
37 return 0;
38 
39 }
40 
41 
42 
43 第二种 
44 
45 
46 
47 #include<stdio.h>
48 
49 #include<string.h>
50 
51 int main()
52 
53 {
54 
55 char a[100050],b[100050],c[100050];
56 
57 while(gets(a))
58 
59 {
60 
61 gets(b);
62 
63 strcpy(c,a);
64 
65 strcat(a,c);
66 
67 if(strstr(a,b))
68 
69 puts("yes");
70 
71 else puts("no");
72 
73 }
74 
75 return 0;
76 
77 }
原文地址:https://www.cnblogs.com/awsent/p/4267144.html