796. 旋转字符串
给定两个字符串, A 和 B。
A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True。
示例 1:
输入: A = 'abcde', B = 'cdeab'
输出: true示例 2:
输入: A = 'abcde', B = 'abced'
输出: false
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
解1
逐位移动判断
/**
* @param {string} A
* @param {string} B
* @return {boolean}
*/
var rotateString = function(A, B) {
if (A.length != B.length) {
return false
}
if (A == B) {
return true
}
A = A.split('')
let i = 0
while (i < A.length - 1) {
A.push(A[0])
A.shift()
if (A.join('') == B) {
return true
}
i++
}
return false
};
解2
判断B是不是在A首位相连后的结果中
/**
* @param {string} A
* @param {string} B
* @return {boolean}
*/
var rotateString = function(A, B) {
return A.length == B.length && (A += A).indexOf(B) != -1
};
« 970. 强整数