[LeetCode] 796. Rotate String 旋转字符串

陪她去流浪 桃子 2018年04月13日 编辑 阅读次数:2004

题目

796. Rotate String

题意

把字符串最左边的一个字符移到字符串的最右边并组成一个新字符串,这样的操作叫作移位(shift)或旋转(rotate)。

判断字符串 A 经过若干次旋转后能否得到字符串 B

思路

旋转 n (n < A的长度) 次,就是把 A 的前 n 个字符拼接到 A 的后 A的长度 - n 个字符后,得到的新字符串。

所以实际上并不需要真正的旋转操作,只需要把 A 分成两部分并与 B 比较就行了。

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
func rotateString(A string, B string) bool {
	na, nb := len(A), len(B)

	if A == B {
		return true
	}

	if na != nb {
		return false
	}

	for i := 1; i < na; i++ {
		if A[i:]+A[0:i] == B {
			return true
		}
	}

	return false
}

标签:LeetCode