686.Repeated String Match
题目要求:给定两个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成功:
本文介绍了一种解决特定字符串匹配问题的方法,即如何通过重复字符串A来包含字符串B,给出了一种有效的算法实现,并附带示例代码。
188

被折叠的 条评论
为什么被折叠?



