SDUToj

来源:互联网 发布:js精粹 编辑:程序博客网 时间:2024/05/30 23:04

Eddy的难题

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

Problem Description

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

Input

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

Output

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

Example Input

AABCDCDAAASDASDF

Example Output

yesno

Hint

import java.util.Scanner;public class Main {public static void main(String[] args){Scanner p = new Scanner(System.in);while(p.hasNext()){String number1 = p.next() ; String number2 = p.next() ; if(number1.length()<number2.length()){System.out.println("no");}else{number1 = number1 + number1  ; int index = number1.indexOf(number2) ; if(index==-1){System.out.println("no");}else{System.out.println("yes");}}}}}

例子: 
先将number1字符串变成自身的两倍,这样让number1字符串收尾相连.
如: number1 = "DEF456ABC" 
经过number1 = number1 + number1之后:  number1 = "DEF456ABCDEF456ABC" ; 
然后再用 number2 = "ABCDEF"  在 number1中查找 ;