Строковое количество с перекрывающимися случаями

Что лучший способ состоит в том, чтобы считать количеством случаев данной строки, включая перекрытие в Python? Это самый очевидный путь:

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')
returns 5

?

Или есть ли в Python лучший путь?

50
задан Georgy 18 October 2019 в 05:00
поделиться

1 ответ

def occurance_of_pattern(text, pattern):
    text_len , pattern_len = len(text), len(pattern)
    return sum(1 for idx in range(text_len - pattern_len + 1) if text[idx: idx+pattern_len] == pattern) 
0
ответ дан 7 November 2019 в 10:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: