还有这么美妙的解法😄
思路之一:
1、假如 A="abcd" 则 A+A = "abcdabcd"
2、如果B 满足 题目的条件,则B 一定属于 A+A 里面的一个子串

import java.util.*;


public class Solution {
    /**
     * 旋转字符串
     * @param A string字符串 
     * @param B string字符串 
     * @return bool布尔型
     */
    public boolean solve (String A, String B) {
        //特殊情况处理
        if(A==null||B==null||A.length()<2||B.length()<2||A.length()!=B.length()){
            return false;
        }
        //日   这么巧妙
        return (A+A).contains(B);
    }
}

思路之二:
1、A和B长度不等,则返回 false
2、A个B长度相等,不断的切割 A为head和tail 两部分
3、如果B中同时包含 head和tail 两部分,则返回true
4、如果一直没找到,则返回false

import java.util.*;


public class Solution {
    /**
     * 旋转字符串
     * @param A string字符串 
     * @param B string字符串 
     * @return bool布尔型
     */
    public boolean solve (String A, String B) {
        // write code here
        if(A==null||B==null||A.length()<2||B.length()<2||A.length()!=B.length()){
            return false;
        }
        int i=1;
        while(i<A.length()){
            String headStr = A.substring(0,i);
            String tailStr = A.substring(i);
            if(B.contains(headStr)&&B.contains(tailStr)){
                return true;
            }
            i++;
        }
        return false;
    }
}