Este algoritmo analiza la cadena de derecha a izquierda esto es eliminando el ultimo elemento del patrón de palabras después de esto se invierte este patrón y se van insertando todos los elementos que no esten en el patrón referente a la cadena de texto.
Y como resultado no obtuve nada porque aun no esta terminado :(
Código
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from sys import argv | |
import random | |
import time | |
n=int(argv[1]) #recibe parametros n= longitud de cadena donde se busca | |
m=int(argv[2]) #recibe parametros m=longitud de patron a buscar | |
def generan(tam): #Funcion para generar patron o texto | |
x=[] #Variable para guardar el texto o patron a generar | |
for i in range(tam): | |
letra=random.randint(97,122) #random de un numer0 de 97 a 122 | |
x.append(chr(letra)) #agrega letra | |
return x | |
def reversa(patron): #funcion para voltear palabra (forma reversa) | |
reg_p=[] | |
for i in reversed(patron): | |
reg_p.append(i) | |
return reg_p # regresa la palabra ya en reversa | |
def agregar(reg_patron,texto): | |
for i in texto: | |
if str(texto[i]) in reg_patron: | |
pass | |
else: | |
reg_patron.append(i) | |
print reg_patron | |
def b_moore(texto,patron): #algoritmo boye-moore | |
inicio=time.time() | |
intento = 0 | |
rev_patron=reversa(patron) #manda a poner de reversa la palabra | |
rev_patron=rev_patron.pop(0) | |
tabla=agregar(rev_patron,texto) | |
print rev_patron | |
def main(): | |
texto=generan(n) | |
print texto | |
patron = generar(m) | |
print patron | |
b_moore(texto,patron) | |
main() |
1+1.
ResponderEliminar