给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。s 的 旋转操作 就是将 s 最左边的字符移动到最右边。 例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。
输入: s = “abcde”, goal = “cdeab”
输出: true
输入: s = “abcde”, goal = “abced”
输出: false
class Solution {
public boolean rotateString(String A, String B) {
if (A.equals(B)) {
return true;
}
String rotateStr = A;
for (int i = 0; i < rotateStr.length(); i++) {
rotateStr = rotateStr.substring(1) + rotateStr.substring(0, 1);
if (rotateStr.equals(B)) {
return true;
}
}
return false;
}
//根据A的旋转特性,B字符串一定是两个A串拼接字符串的子串
public boolean rotateString_2(String A, String B) {
return A.length() == B.length() && (A + A).contains(B);
}
}