Repeated String Match
Problem statement
Given two strings a and b, return the minimum number of times you should repeat string a so that string b is a substring of it. If it is impossible for b to be a substring of a after repeating it, return -1.
Notice: string "abc" repeated 0 times is "", repeated 1 time is "abc" and repeated 2 times is "abcabc".
Example 1:
Input: a = "abcd", b = "cdabcdab"Output: 3Explanation: We return 3 because by repeating a three times "abcdabcdabcd", b is a substring of it.
Example 2:
Input: a = "a", b = "aa"Output: 2
Constraints:
1 <= a.length, b.length <= 104aandbconsist of lowercase English letters.
My solution
/**
* @param {string} a
* @param {string} b
* @return {number}
*/
var repeatedStringMatch = function(a, b) {
const reminder = Math.ceil(b.length / a.length)
if (a.repeat(reminder).includes(b)) {
return reminder;
}
// console.log(a.repeat(reminder + 1))
if (a.repeat(reminder + 1).includes(b)) {
return reminder + 1;
}
return -1
};