Skip to main content

Rotate String

Problem statement

Given two strings s and goal, return true if and only if s can become goal after some number of shifts on s.

A shift on s consists of moving the leftmost character of s to the rightmost position.

  • For example, if s = "abcde", then it will be "bcdea" after one shift.

Example 1:

Input: s = "abcde", goal = "cdeab"Output: true

Example 2:

Input: s = "abcde", goal = "abced"Output: false

Constraints:

  • 1 <= s.length, goal.length <= 100
  • s and goal consist of lowercase English letters.

My solution

/**
* @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;
}

let i = 0;
while (i < A.length) {
const arr = A.split("");
arr.push(arr.shift())
A = arr.join("")
if (A === B) {
return true;
}
i++;
}

return false;
};