Buonasera ragazzi sto svolgendo un progetto in Python purtroppo però mi sono veramente bloccato su una parte di codice da svolgere in maniera ricorsiva probabilmente attraverso l’uso di alberi, non saprei. Chiedo gentilmente un aiuto qui sul forum se vi va di vedervi il testo ve lo allego qua sotto:
Viene data una lista di stringhe che, opportunamente combinate, formano un testo.
Le stringhe sono costruite in modo che un suffisso di una sia compatibile col
prefisso di una o più altre, ovvero abbiano una sottostringa in comune nelle
estremità opposte, di lunghezza imprecisata.
Esempio: "cavallo" è compatibile sia con "allora" ('allo') che con "logica"
('lo' ma anche 'ca' scambiando l'ordine delle due parole) e combinate possono
produrre rispettivamente "cavallora", "cavallogica" oppure "logicavallo".
In caso ci fossero più sottostringhe comuni per la stessa coppia di parole,
si prenda la più lunga.
Esempio: "patata" è compatibile con "atalanta" sia per la sottostringa 'a'
che per 'ata', si consideri 'ata'.
Esite un'unica sequenza delle stringhe in modo che ciascuna coppia di parole
consecutive sia compatibile per costruire il testo.
Si deve costruire un programma che fa uso di almeno una funzione ricorsiva
per trovare l'unica sequenza e, quindi, il testo originario.
Nello specifico, si costruisca una funzione es(fparole,ftesto) che prende
come argomenti:
- fparole: il percorso di un file di testo che contiene, su righe successive, le stringhe,
- ftesto: il percorso di un file in cui dovete scrivere il testo ricostruito
e che ritorna la lista degli indici delle stringhe in input nell'ordine
corretto per ottenere il testo originale (sconosciuto).
ES: se le stringhe nel file sono 'ottuso' 'iodato' 'coniglio'
l'unica sequenza corretta da scrivere nel file ftesto è conigliodatottuso
e la funzione deve tornare la lista di indici [2,1,0]
Non è ammesso importare librerie!
Viene data una lista di stringhe che, opportunamente combinate, formano un testo.
Le stringhe sono costruite in modo che un suffisso di una sia compatibile col
prefisso di una o più altre, ovvero abbiano una sottostringa in comune nelle
estremità opposte, di lunghezza imprecisata.
Esempio: "cavallo" è compatibile sia con "allora" ('allo') che con "logica"
('lo' ma anche 'ca' scambiando l'ordine delle due parole) e combinate possono
produrre rispettivamente "cavallora", "cavallogica" oppure "logicavallo".
In caso ci fossero più sottostringhe comuni per la stessa coppia di parole,
si prenda la più lunga.
Esempio: "patata" è compatibile con "atalanta" sia per la sottostringa 'a'
che per 'ata', si consideri 'ata'.
Esite un'unica sequenza delle stringhe in modo che ciascuna coppia di parole
consecutive sia compatibile per costruire il testo.
Si deve costruire un programma che fa uso di almeno una funzione ricorsiva
per trovare l'unica sequenza e, quindi, il testo originario.
Nello specifico, si costruisca una funzione es(fparole,ftesto) che prende
come argomenti:
- fparole: il percorso di un file di testo che contiene, su righe successive, le stringhe,
- ftesto: il percorso di un file in cui dovete scrivere il testo ricostruito
e che ritorna la lista degli indici delle stringhe in input nell'ordine
corretto per ottenere il testo originale (sconosciuto).
ES: se le stringhe nel file sono 'ottuso' 'iodato' 'coniglio'
l'unica sequenza corretta da scrivere nel file ftesto è conigliodatottuso
e la funzione deve tornare la lista di indici [2,1,0]
Non è ammesso importare librerie!