给定两个字符串A和B,找到A必须重复的最小次数,以使得B是它的子字符串。 如果没有这样的解决方案,返回-1。
样例
样例1:
输入 : A = "a" B = "b".
输出 : -1
样例 2:
输入 : A = "abcd" B = "cdabcdab".
输出 :3
解释:因为将A重复3次以后 (“abcdabcdabcd”), B将成为其的一个子串 ; 而如果A只重复两次 ("abcdabcd"),B并非其的一个子串.
注意事项
A和B的长度在1到10000之间。
class Solution {
public:
/**
* @param A: a string
* @param B: a string
* @return: return an integer
*/
int repeatedStringMatch(string &A, string &B) {
// write your code here
int times = 1;
string tmp = A;
A = "";
while(A.size() <= 2*B.size())
{
A = A + tmp;
if(A.find(B) != std::string::npos)
{
return times;
}
times++;
}
return -1;
}
};