terça-feira, 25 de janeiro de 2011

Problema 4: Exame Normal

Pretendemos obter a lista com todas as posições iniciais em que um dado padrão ocorre num texto. Texto e padrão são cadeias de caracteres. Vamos ter que percorrer todo o texto à procura do padrão. Cada vez que encontramos o padrão guardamos a posição inicial, e recomeçamos. Vamos usar os métodos sobre cadeias de caracteres que nos permitem procurar cadeias de caracteres noutras cadeias. Segue uma solução.



def procura_pad(texto, padrao):
"""
Lista com as posições iniciais de todas as ocorrências
do padrão no texto.
"""
lista = []
pos = texto.find(padrao)
while pos != -1:
lista.append(pos)
pos = texto.find(padrao,pos + 1)
return lista

Esta solução faz uso do método find, com dois argumentos, e do conhecimento que temos de que, caso o padrão não ocorra, nos é devolvido o valor -1. Notar que avançamos posição a posição e não por saltos igual ao tamanho do padrão. Assim não perdemos nenhuma ocorrência.

Sem comentários:

Enviar um comentário