在字符串b的长度范围内循环累加a并且判断是否存在子串,但要注意边界,所以循环结束后如果不存在,需要在累加一次并进行判断!!!
思路:要使得字符串B成为字符串A的子串,必须使字符串A的长度大于或等于字符串B的长度;因此,在字符串A的长度小于字符串B的长度时,重复叠加字符串A,并记录叠加次数;
若字符串B仍不能成为叠加后的字符串A的子串,再一次叠加字符串A,再次判断,若仍不能,则B并不是其子串。
我的:
class Solution(object):
def repeatedStringMatch(self, A, B):
"""
:type A: str
:type B: str
:rtype: int
"""
if set(A)!=set(B):
return -1
tmp = A
i = 2
while i<10000:
if B in A:
return i-1
if len(B)==len(A)-len(tmp):
return -1
else:
A=tmp*i
i+=1
return -1