重复叠加字符串匹配

给定两个字符串 a 和 b,寻找重复叠加字符串 a 的最小次数,使得字符串 b 成为叠加后的字符串 a 的子串,如果不存在则返回 -1。
注意:字符串 “abc” 重复叠加 0 次是 “”,重复叠加 1 次是 “abc”,重复叠加 2 次是 “abcabc”。

  • 输入:a = “abcd”, b = “cdabcdab”
    输出:3
    解释:a 重复叠加三遍后为 “abcdabcdabcd”, 此时 b 是其子串。

  • 输入:a = “a”, b = “aa”
    输出:2

1
2
3
4
5
6
var repeatedStringMatch = function(a, b) {
const count = Math.ceil(b.length / a.length);
if (a.repeat(count).includes(b)) return count;
if (a.repeat(count + 1).includes(b)) return count + 1;
return -1;
};