有什么方法可以计算另一个字符串中重叠的字符串吗?

Any way to count overlapped strings within another string?

计算两个字符串之间相同重叠字符的索引(位置)的简单方法是什么?

def overlap(string1, string2):

    count = 0

    for i in range(0,len(string1)-len(string2)+1):
        if string2 in string1[i:i+len(string2)]:
            count = count +1
    return count

我意识到我的功能存在一些问题。有人可以指出并解释吗?那会很有帮助!

样本:

overlap('abcb','dbeb') #output >>> 2, not 4
overlap('','winter')   #output >>> 0.

由于字符串可以有不同的长度,所以使用最小长度。然后使用数组索引逐个字符地比较它们。概念上:

def overlap(string1, string2):
  count=0
  for i in range(min(len(string1),len(string2))):
    if string1[i] == string2[i]:
      count += 1
  return count

您可以使用 zip 内置函数来实现它(请参阅 python 文档)。