/*
* 判断s2能否由s1旋转得到
* 已知isSunString函数,但只能调用一次
* 思路:s1=xy; s2=yx;令s1=s1+s1=xyxy;则s2必为s1的子串
*/
import java.util.Scanner;
public class RotateString {
static boolean isSubString(String s1,String s2){
//也可以用KMP来判断,暂时写不出来额
for(int i=0;i<s1.length()/2;i++){
for(int j=i+s2.length();j<s1.length();j++){
//public String substring(int beginIndex, int endIndex)
//返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。
//因此,该子字符串的长度为 endIndex-beginIndex。
String subStr=s1.substring(i,j);
if(subStr.equals(s2)) return true;
}
}
return false;
}
public static void main(String[] args) {
String s1,s2;
System.out.println("Please input s1:");
Scanner cin=new Scanner(System.in);
s1=cin.next();
s1=s1+s1;
while(true){
System.out.println("Please input a string:");
s2=cin.next();
if(s2.equals("0")) break;
if(s2.length()!=s1.length()/2){
System.out.println("No");
continue;
}
if(isSubString(s1,s2)){
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
}
}
/*Test
Please input s1:
waterbottle
Please input a string:
erbottlewat
Yes
Please input a string:
water
No*/