686. 重复叠加字符串匹配

exiaohu 于 2021-12-22 发布

题目链接: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