在两个字符串之间相同地计算重叠字符的索引(位置)的简单方法是什么?
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.
答案 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文档)。