题目链接:686. 重复叠加字符串匹配
二分查找。
class Solution:
def repeatedStringMatch(self, a: str, b: str) -> int:
l = (len(b) + len(a) - 1) // len(a)
r = l + l
if b not in (a * r):
return -1
if b in (a * l):
return l
while l + 1 < r:
m = (l + r) // 2
if b in (a * m):
r = m
else:
l = m
return r