Busca em texto com o método de Boyer Moore
Publicado por Danilo Azevedo em 23/07/2014
[ Hits: 6.083 ]
1 2 3 4 5 ... 35 String: W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T 1 2 3 4 5 6 7 Padrão: A T - T H A TFórmulas (usando o padrão):
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 1Calcular o delta2(6): procurar o sufixo de A, que não tenha A como prefixo.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 4 1Calcular o delta2(5): procurar o sufixo de H, que não tenha tenha H como prefixo.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 7 4 1Calcular o delta2(4): procurar sufixo de T, que não tenha T como prefixo.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 8 7 4 1Calcular o delta2(3): ...
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T T H A TE portanto, o T H A T no índice -1
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 9 8 7 4 1Calcular o delta2(2) e delta2(1): dá trabalho.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 11 10 9 8 7 4 1Utilizando delta1 e delta2 para achar o padrão:
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A TF não ocorre no padrão, logo, delta1(F) = 7
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A TOs caracteres não batem (não utiliza delta2), utilizamos o delta1 do caractere encontrado, delta1(-) = 4:
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A T A T - T H A T |Os caracteres batem (T e T), utilizamos o máximo entre delta1 e delta2. o sufixo é o T (paramos no A)
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A T A T - T H A T A T - T H A T |Os caracteres batem até o caractere A, logo, utilizamos o delta2 que tem sufixo A T (o delta2(5)= 7).
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A T A T - T H A T A T - T H A T A T - T H A T
Instalação do Squid e SARG no Centos 7
Inserindo uma imagem no Grub 2
Como habilitar login como root no Debian 8 (Jessie)
Replicação de servidor com partimage
GNOME 3 - Alterando a função do fechamento de tampa de notebooks
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Jogos baixados na Central de Aplicativos mas que não abrem (1)
debian com wayland, configuracao de teclado. Mudou Tudo! [RESOLVIDO] (1)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (11)