Почему string.count () не дает правильного ответа, если подстрока, которую мы ищем, перекрывается.? - PullRequest
0 голосов
/ 24 октября 2019

в коде для "CD" count () дает правильное значение, а для "CDC" - только одно почему? и как найти "CDC"?

v="ABCDCDC"
print(v.count("CD"))#2
print(v.count("CDC"))#1

#

def count_substring(string, sub_string):
#return(string.count(sub_string))
#return
n=len(string)
m=len(sub_string)
sum=0
for i in range(n-m+1):
    a=i+m
    if string[i:a]==sub_string:
        sum=sum+1
return(sum)

это работает, но есть ли какой-нибудь простой строковый метод для использования ?? выход 2 1

1 Ответ

1 голос
/ 24 октября 2019

В документации здесь указано, что count не учитывает перекрывающихся совпадений:

str.count(sub[, start[, end]])

Возвращает число не-перекрывающиеся вхождения подстроки sub в диапазоне [start, end]. Необязательные аргументы start и end интерпретируются как обозначения срезов.

...