Problem
We are given two strings, A and B.
A shift on A consists of taking string A and moving the leftmost character to the rightmost position. For example, if A = `abcde`, then it will be `bcdea` after one shift on A. Return True if and only if A can become B after some number of shifts on A.
Example 1:
Input: A = `abcde`, B = `cdeab`
Output: true
Example 2:
Input: A = `abcde`, B = `abced`
Output: false
Note:
A and B will have length at most 100.
Solution
class Solution {
public boolean rotateString(String A, String B) {
// if (A == null) return B == null;
// if (B == null) return A == null;
if (A.length() == 0) return B.length() == 0;
if (A.length() != B.length()) return false;
String AA = new String(A+A);
for (int i = 0; i < A.length(); i++) {
if (AA.substring(i, i+A.length()).equals(B)) return true;
}
return false;
}
}