这里的思路是,字符串A的某个字符串子串必然包含在B中,那么遍历字符串A,从0开始逐个截取到最后一个,必然会出现可以被B包含的子串,然后使用这个子串和A剩下的子串反转拼接,必然得到B字符串。 import java.util.*; public class Solution { /** * 旋转字符串 * @param A string字符串 * @param B string字符串 * @return bool布尔型 */ public boolean solve (String A, String B) { if(A.length() != B.length()) { return false; } else { String res = null; String compare = null; for(int i = 0; i < A.length(); i++){ //从第一个字符开始拿,一直拿到最后一个字符 res = A.substring(i, A.length()); //如果B中含有A这个字符串,则记录这个字符串,尝试反转后,与A比较 if(B.contains(res)){ compare = A.substring(0, i); break; } } return (res+compare).equals(B); } } }