【问题标题】:Any way to count overlapped strings within another string?有什么方法可以计算另一个字符串中重叠的字符串?
【发布时间】:2016-02-28 01:19:10
【问题描述】:

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

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.

【问题讨论】:

标签: python string count overlap


【解决方案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 文档)。

【讨论】:

  • 感谢您的帮助和解释。我想我现在明白了。没有考虑最小长度。 ;)
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
  • 1970-01-01
相关资源
最近更新 更多