给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。
示例 1:
输入:A = "abcd",B = "cdabcdab"。
输出: 3
解释:A重复叠加三遍后为“abcdabcdabcd” 此时B是其子串;A重复叠加两遍后为"abcdabcd" B并不是其子串。
注意:
A 与 B 字符串的长度在1和10000区间范围内。
解法一:通过叠加去对比B是否存在于A字符串中。当A的字符串长度大于B数倍时,循环停止再加下去已没有意义。
/**
* @param date 2018/11/10 晚上
*/
var repeatedStringMatch = function(A, B) {
if(A.indexOf(B)>=0){
return 1;
}
var i=0,str="";
while(true){
str+=A
i+=1;
if(str.indexOf(B)>=0){
break;
}
if(str.length>=B.length*5 && i>10){
i=-1;
break;
}
}
return i;
};