Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def es1(ftesto):
- with open(ftesto) as f:
- j = 0
- ini = 0
- cont = 0
- m = int(f.readline()) #lunghezza sottostringa segreta
- stringa=""
- i = 0
- for linea in f:
- stringa+=linea.replace('\n',' ')
- stringa_completa = (stringa.replace(" ",",")).replace(" ","").split(",")
- print(stringa_completa)
- #FINE CREAZIONE LISTA PAROLE
- #INIZIO CREAZIONE DIZIONARIO CON SOTTOSTRINGHE DI LUNGHEZZA M DELLA PRIMA PAROLA DELLA LISTA
- diz = {}
- a=0
- b=m
- #andare a prendere il dizionario con minor lunghezza all'interno di stringa_completa
- parola_minore = min(stringa_completa, key=len)
- #while b!= ((len(stringa_completa[0]))+1):
- while b!= ((len(parola_minore))+1):
- diz[parola_minore[a:b]] = 0
- a+=1
- b+=1
- print(diz)
- #FINE CREAZIONE DIZIONARIO CON CHIAVE UGUALE ALLA SOTTOSTRINGA E VALORE '0' CHE POI DOVRA ANDARE A COMBACIARE CON LA LUNGHEZZA DELLA PRIMA LISTA COSì DA AVER TROVATO LA SOTTOSTRINGA SEGRETA
- #INZIO AGGIORNAMENTO VALORI DIZIONARIO
- for x in stringa_completa:
- #print(x)
- k = 0
- v = m
- while v != ((len(x))+1):
- for diz_key in diz.keys():
- if x[k:v] == diz_key:
- diz[diz_key] +=1
- break
- k+=1
- v+=1
- print(diz)
- #FINE AGGIORNAMENTO DIZIONARIO CON VALORI PER CAPIRE QUALE è LA SOTTOSTRINGA SEGRETA
- #INIZIO FASE FIND SOTTOSTRINGA SEGRETA
- sottostringa_segreta = ""
- for diz_key in diz.keys():
- if diz[diz_key] == ((len(stringa_completa))):
- sottostringa_segreta = diz_key
- print(sottostringa_segreta)
- #FINE FIND SOTTOSTRINGA SEGRETA
- indici = []
- for x in stringa_completa:
- k = 0
- v = m
- while v != ((len(x))+1):
- if x[k:v] == sottostringa_segreta:
- indici.append(k)
- break
- else:
- k+=1
- v+=1
- print(indici)
- return indici
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement