有没有办法计算另一个字符串中的重叠字符串?

时间:2016-02-28 01:19:11

标签: python string count overlap

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

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.

1 个答案:

答案 0 :(得分:1)

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

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文档)。