# 旋转字符串(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

# API

export const rotateString = (A, B) => {
	return A.length === B.length && (A + A).indexOf(B) > -1;
};
1
2
3