一开始想不出来,后来看了题解。
就是先重复A,知道length大于等于B;如果还不行,那么再加一次A,试一下,就足以。否则和前者是第一个长度大于等于B的假设矛盾。
class Solution: def repeatedStringMatch(self, A: str, B: str) -> int: cnt = len(B) // len(A) ss = A * cnt while (len(ss) < len(B)): ss += A cnt += 1 if B in ss: return cnt ss += A cnt += 1 if B in ss: return cnt return -1