Come avevo detto in un altro post:
La parola nascosta sarà all'interno di ogni stringa, separata da spazio, UNA SOLA VOLTA PER STRINGA.
Nell'esempio del professore infatti, per le 6 stringhe con parola nascosta di lunghezza 3:
moneta
maratoneta
pitone
onesto
storione
sonetto
la parola nascosta è 'one' e le posizioni sono nell'ordine: 1, 5, 3, 0, 5, 1
Questo vuol dire che cercando in ogni stringa tutte le sottostringhe di lunghezza 3, 'one' apparirà SOLO 1 volta in ogni stringa. Dopodiché dovrai ritornale la lista delle posizioni di 'one' all'interno delle tue stringhe.
Sapendo questo, se ti generassi tutte le possibili sottostringhe nella prima parola e le andassi a confrontare con le altre, noterai come solo 'one' venga ripetuta nella prima e nelle altre sottostringhe. Questo vuol dire che è inutile andare a cercare tutte le possibili sottostringhe in tutte le stringhe, bensì dovrai andare a cercare, confrontando, le possibili sottostringhe nelle altre parole tramite le sottostringhe della prima parola!
Per fare un esempio la stringa 'onesto' : one, nes, est, sto
Se guardi la stringa successiva 'storione' sarà composta da: sto, tor, ori, rio, ion, one
Quindi andando a guardare nella seconda parola vedrai che alcune sottostringhe si ripetono così saprai quali sono le possibili sottostringhe da cercare. Ora allora dovrai andare a vedere nelle altre parole quali sono ripetute tra quelle.
Se andassimo ora a prendere moneta: mon, one, net, eta.
Vedremo che confrontando con le POSSIBILI SOTTOSTRINGHE delle parole precedenti one e sto solo one è ripetuta una volta in moneta. Quindi possiamo già iniziare a supporre che one è la nostra parola segreta.
Per ottenerla ci sono vari metodi, ad esempio usare dei dizionari che tengono con le sottostringhe in una parola, oppure l'intersezione degli insiemi delle sottostringhe delle varie parole.
Spero di averti dato qualche spunto o qualcosa su cui pensare.