社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
题目要求:给定两个string字符串A和B,判断是否A通过重复,B能变成A中的一个子集,如果能,返回重复的次数,如果不能,返回-1。
我的思路是:
1. 当B not in A时,就让A+=A(注意这里用A的浅拷贝,只要加上A最初的值就行)count+=1
2. 如果A的长度已经大于B的三倍,还没找到B,说明B是无法成为A中的子集了,返回-1
代码如下:
import copy
class Solution(object):
def repeatedStringMatch(self, A, B):
"""
:type A: str
:type B: str
:rtype: int
"""
count = 1
cp = copy.copy(A)
while B not in A:
A += cp
count += 1
if len(A) >= 3*len(B):
return -1
return count
A ="abababaaba"
B= "aabaaba"
s = Solution()
print(s.repeatedStringMatch(A,B))
结果:
最后submit成功:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!