# 旋转字符串(796)
给定两个字符串, A 和 B。
A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True。
# 示例
输入:A = 'abcde'
, B = 'cdeab'
输出: true
输入: A = 'abcde'
, B = 'abced'
输出: false
# 注意
A 和 B 长度不超过 100。
# 算法
# 暴力法
export const rotateString = (A, B) => {
if (A === "" && B === "") return true;
const aArr = A.split("");
const bArr = B.split("");
for (let i = 0; i < aArr.length; i++) {
aArr.push(aArr.shift());
let l = 0,
r = 0;
while (l < aArr.length && r < bArr.length) {
if (aArr[l] !== bArr[r]) {
break;
}
l++;
r++;
if (l === aArr.length && r === bArr.length) {
return true;
}
}
}
return false;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# API
export const rotateString = (A, B) => {
return A.length === B.length && (A + A).indexOf(B) > -1;
};
1
2
3
2
3