循环移位(Cycle)

技术循环移位(Cycle) 循环移位(Cycle)Description
Cycle shifting refers to following operation on the sting. Movin

循环移位(周期)

Description

循环移位是指在支架上进行以下操作。将第一个字母移到末尾,保留字符串的其余部分。例如,在AcceleratedBusinessCollectionandDelivery(美国邮局采用的)加快收寄投递系统上应用循环移位将产生BCDA .给定任意两个字符串,判断一个字符串上任意次数的循环移位是否能生成另一个字符串。

Input

输入中有m行,而每一行都由两个由空格分隔的字符串组成。每个字符串只包含大写字母一个' ~'Z ' .

Output

对于输入中的每一行,如果一个字符串可以通过循环移位转换为另一个字符串,则输出是,否则输出否

Example

投入

AACDCDAA

ABCDEFG EFGABCD

法国连环画评论协会律师协会

ABCDEFEG ABCDEE

输出

Restrictions

0=m=5000

1=|S1|,|S2|=10^5

时间: 2秒

内存: 256兆字节

描述

所谓循环移位是指。一个字符串的首字母移到末尾,其他字符的次序保持不变。比如acceleratedbusinesscollectionaddivery(美国邮局采用的)加快收寄投递系统经过一次循环移位后变成加拿大太平洋牙科会议

给定两个字符串,判断它们是不是可以通过若干次循环移位得到彼此

输入

由m行组成,每行包含两个由大写字母一个~'Z '组成的字符串,中间由空格隔开

输出

对于每行输入,输出这两个字符串是否可以通过循环移位得到彼此:是表示是不,不表示否

样例

见英文题面

限制

0 m 5000

1 |S1|,|S2| 10^5

时间:2秒

内存:256兆字节

1 #包括ecstdio

2 #包括牡蛎

3 #包括字符串

4 #定义N 200005

5使用命名空间标准;

6

7 void getNext(int Next[],char b[],int len)

8 {

9个记忆集(下一个,0,大小为(下一个));

10 Next[0]=-1;

11表示(int i=0,j=-1;伊琳;)

12 if(j==-1||b[i]==b[j])

13下一个[I]=j;

还有14个

15j=下一个[j];

16 }

17 int kmp(char a[],char b[],int Next[])

18 {

19 int n,len

20n=strlen(a);

21 len=strlen(b);

22 getNext(Next,b,len);

23

24表示(int i=0,j=0;在;)

25 {

26 if(j==-1||a[i]==b[j])i,j;

其他27个

28j=下一个[j];

29 if(j=len)

30回1;

31 }

32返回0;

33 }

34

35 int Next[N];

36个字符a[N],b[N];

37 char c[N * 2];

38

39 int main()

40 {

41 while(scanf('%s %s ',a,b)=2)

42 {

43 strcpy(c,a);

44 strcat(c,a);

45

46 if(strlen(a)==strlen(b)kmp(c,b,Next))printf(' YES \ n ');

其他47个

48 printf(' NO \ n ');

49 }

50返回0;

51 }

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/121782.html

(0)

相关推荐

  • Javascript对象原型是什么

    技术Javascript对象原型是什么本篇内容主要讲解“Javascript对象原型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript对象原型是什么”吧

    攻略 2021年11月20日
  • leetcode翻转链表(leetcode如何删除链表)

    技术LeetCode怎样反转链表这篇文章主要为大家展示了“LeetCode怎样反转链表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LeetCode怎样反转链表”这篇文章吧。

    攻略 2021年12月15日
  • leetcode二叉树的最大距离(leetcode合并两个二叉树)

    技术LeetCode如何找出两棵二叉搜索树中的所有元素这篇文章给大家分享的是有关LeetCode如何找出两棵二叉搜索树中的所有元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一,两棵

    攻略 2021年12月15日
  • Java(10)File递归字节流

    技术Java(10)File递归字节流 Java(10)_File递归字节流1.File类
    1.1File类概述和构造方法【应用】File类介绍它是文件和目录路径名的抽象表示
    文件和目录是可以通过Fil

    礼包 2021年12月14日
  • c语言中主要有几种循环语句(c语言循环语句基础知识)

    技术怎么深入了解c语言的循环语句怎么深入了解c语言的循环语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C语言循环语句大多数人都希望自己是体格强健,天

    攻略 2021年12月14日
  • sparkmllib运行原理(spark中mlli应用场景)

    技术Spark中MLlib和ML库的区别是什么这篇文章给大家介绍Spark中MLlib和ML库的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。机器学习库(MLlib)MLlib是Spark

    攻略 2021年12月17日