2016-02-28 69 views
0

在兩個字符串之間統一重疊字符的索引(位置)的簡單方法是什麼?任何方式來計算另一個字符串中的重疊字符串?

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

哦,是的,感謝您的建議 – markzzzz

+1

什麼是您當前的代碼的輸出,預期的輸出是什麼?你在找同樣的東西作爲問題[在Python中的字符串重疊計數的子字符串](http://stackoverflow.com/questions/32283255/overlapping-count-of-substring-in-a-string-in-python ), 也許? –

回答

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文檔)實現它。

+0

感謝您的幫助和解釋。我想我現在明白了。沒有想到最小長度。 ;) – markzzzz