"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso contar com eficiência as ocorrências de substring em Python (incluindo casos sobrepostos)?

Como posso contar com eficiência as ocorrências de substring em Python (incluindo casos sobrepostos)?

Publicado em 2024-11-21
Navegar:193

How Can I Efficiently Count Substring Occurrences in Python (Including Overlapping Cases)?

Contando ocorrências de uma substring dentro de uma string em Python

Uma tarefa frequente de programação envolve determinar o número de vezes que uma substring específica aparece dentro de uma string maior. Python fornece vários métodos para realizar essa tarefa com eficiência.

Uma abordagem direta é utilizar o método string.count(). Este método usa a substring como argumento e retorna o número de ocorrências na string. Por exemplo:

>>> 'foo bar foo'.count('foo')
2

Este método também conta duas ocorrências consecutivas sobrepostas da substring. Se isso for indesejável, você pode considerar outras opções.

Se você precisar levar em conta ocorrências sobrepostas, uma implementação personalizada usando uma abordagem de janela deslizante pode ser empregada. Aqui está um exemplo:

def count_overlapping_occurrences(string, substring):
    count = 0
    window_start = 0
    window_end = len(substring)
    while window_end >> count_overlapping_occurrences('abcdabcva', 'ab')
4

Ao usar esta função, você pode determinar com precisão o número de ocorrências de uma substring dentro de uma string, independentemente de elas se sobreporem.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3