String count with overlapping occurrences

python, search, string

Solution

Well, this might be faster since it does the comparing in C:

def occurrences(string, sub):
    count = start = 0
    while True:
        start = string.find(sub, start) + 1
        if start > 0:
            count+=1
        else:
            return count

Problem

What's the best way to count the number of occurrences of a given string, including overlap in Python? This is one way: ``` def function(string, str_to_search_for): count = 0 for x in xrange(len(string) - len(str_to_search_for) + 1): if string[x:x+len(str_to_search_for)] == str_to_search_for: count += 1 return count function('1011101111','11') ``` This method returns 5. Is there a better way in Python?

Original source

Related problems