Coincidência de padrões (pattern matching)
Defina um função em C que implemente o algoritmo ingénuo para verificação de coincidência de padrões (naive search string).
Faça um programa que indique quantas vezes e em que shifts ocorre um padrão p na string t.
ex:
p=''123123''
t=''123456712123123123124123123''
p ocorre 3 vezes em t em: 9,12 e 21.
Defina uma função em C que implemente o algoritmo Rabin-Karp.
Resolva a alínea 2 com o algoritmo de Rabin-Karp
Desenhe os autómatos finitos que reconhecem os seguintes padrões (e construa as funções de transição), para o vocabulário {a,b,c,d}:
p=''aaaaa''
p=''ababa''
p=''abcddcba''
Defina uma função em C que dado um padrão (uma string), e um vocabulário constrói a função de transição do autómato finito que reconhece o padrão.
Defina em C uma função que dado um padrão e um texto (duas strings) usa um autómato finito para encontrar o shift do padrão no texto.
Modifique a função da alínea anterior para encontrar todos os shifts do padrão no texto.